К основному контенту

1C 8.x Язык запросов. Даты, Период, По дням..

Столкнулся с тем, что не мог найти у себя готовый шаблон формирования в запросе Периода по дням, зная начальную и конечную дату, вида

// Прибавляем к дате начала отчета все числа дней и отбираем при этом подходящие нам
// то есть не больше даты конца отчета, получим все даты периода формирования
ВЫБРАТЬ
                ДОБАВИТЬКДАТЕ(&НачПериодаДЕНЬВТ_Линейка.Поле1) КАК Дата
ПОМЕСТИТЬ ВТ_ВсеДаты
ИЗ                ВТ_Линейка КАК ВТ_Линейка
ГДЕ                ДОБАВИТЬКДАТЕ(&НачПериодаДЕНЬВТ_Линейка.Поле1) <&КонПериода



Хороший пример работы с датами в запросах можно посмотреть на примере календаря на СКД http://infostart.ru/public/103472/


Переработал запрос под себя, ограничил размер ВТ_Линейка (интервал целых чисел от 1 до ....) по РазностьДат

ВЫБРАТЬ
0 КАК Поле1
ПОМЕСТИТЬ ВТ_Числа

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
1

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
2

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
3

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
4

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
5

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
6

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
7

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
8

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
9
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
ВТ_Числа1.Поле1 + ВТ_Числа10.Поле1 * 10 + ВТ_Числа100.Поле1 * 100 + ВТ_Числа1000.Поле1 * 1000 КАК Поле1
ПОМЕСТИТЬ ВТ_Линейка
ИЗ
ВТ_Числа КАК ВТ_Числа1,
ВТ_Числа КАК ВТ_Числа10,
ВТ_Числа КАК ВТ_Числа100,
ВТ_Числа КАК ВТ_Числа1000
ГДЕ
ВТ_Числа1.Поле1 + ВТ_Числа10.Поле1 * 10 + ВТ_Числа100.Поле1 * 100 + ВТ_Числа1000.Поле1 * 1000 <= РАЗНОСТЬДАТ(&Дата1, &Дата2, ДЕНЬ)
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
ДОБАВИТЬКДАТЕ(&Дата1, ДЕНЬ, ВТ_Линейка.Поле1) КАК Дата
ПОМЕСТИТЬ ВТ_ВсеДаты
ИЗ
ВТ_Линейка КАК ВТ_Линейка
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
вт_ВсеДаты.Дата
ИЗ
ВТ_ВсеДаты КАК вт_ВсеДаты

Комментарии

Популярные сообщения из этого блога

СписокВыбора. Показать Представление вместо Значения

Вводная Если на форме есть элемент управления со списком выбора, в моем конкретном примере это Колонка Значение (Число (3,0)) с настроенным списком выбора. По умолчанию платформа отображает именно строковое значения, а не текст представления  из списка выбора (когда как при выборе значения из списка показываются именно представления). Решение Для Управляемых форм необходимо настроить правила условного оформления, для обычных форм - оформление ячеек при выводе данных.

Табличный Документ. Разная ширина колонки в строках

Когда нужно в макете (табличном документе) изменить ширину колонки  для конкретных строк: 1. Выделить всю строку (строки). Именно всю, фокус для выделенной области не работает. 2. Нажимаем и не отпускает Ctrl 3. С помощью мыши изменяют ширину любой из колонок - будет задан вопрос об создании нового формата строк - соглашаемся. Как же прекрасен мир, где для модификаций не достаточно просто использовать контекстное меню и диалог редактора свойств, где нужно знать заветные слова и таинства танца. 90ые, моё почтение. UPD Программно, тоже самое, можно сделать через ТабДок = Новый ТабличныйДокумент(); ТабДок.Область(1,,1,).СоздатьФорматСтрок(); ТабДок.Область(1,1).ШиринаКолонок = 70; ТабДок.Область(1,2).ШиринаКолонок = 30; ТабДок.Область(2,,2,).СоздатьФорматСтрок(); ТабДок.Область(2,1).ШиринаКолонок = 30; ТабДок.Область(2,2).ШиринаКолонок = 70; ТабДок.Показать();

Расширение конфигурации + Связанные документы (Режим совместимости 8.3.12)

Вводная: реализовать ввод Заказа поставщику на основании Заказа на Ремонт. решить через расширения конфигурации. Хочу обратить ваше внимание, не нужно добавлять в расширение критерий отбора, для 8.3.12 нам не доступно добавление\изменение состава критерия. Более того может зависать конфигуратор (столкнулся с последней версией 8.3.14 + ERP) Разработку рекомендую вести с применением хранилища и для расширения. Иначе устанете потом выгребать чего лишнего включили в расширение при добавлении таких или схожих обектов с составными типами и подобное. Все текущие типовые решения сейчас идут в режиме совместимости 8.3.12, в прочем и для 8.3.14 (и даже 8.3.15 ничего не поменялось). Что нам нужно было бы сделать при отказе от поддержки: 1) добавить наш документ в Критерий отбора (состав, реквизиты); 2) в раздел Ввод на основании целевого документа. И что с целью сохранения поддержки. Как сделать это же для расширения: 1) Добавить реквизит расширения Документы.ЗаказПоставщику._За