Коллеги! Вопрос, возможно странные, но тк программирую редко, прошу тапки не кидать
Конфигурация Управление ПроизводственнымПредприятием.
Задача стояла следующая: контролировать кто когда получал спецодежду и когда необходимо выдать в следующий раз.
Ниже приведен запрос. Он последовательно выбирает следующую информацию:
1. Кто вообще работает (не уволен, не в декрете)
2. Кто должен получать спецодежду (собственный регистр, к нему вопросов нет, работает)
3. Когда последний раз получал спецодежду, при этом по сроку полезного использования вычисляется ОриентировочнаяДатаСдачи (она же дата, когда нужно одеть в следующий раз). Если человек вновь прибывший, то в качестве ОриентировочнаяДатаСдачи ставится дата формирования отчета.
Формально отчет выдает нужные мне данные (см первый рисунок), но как только указывается отбор по периоду (при этом дата формирования отчета попадает в указанный период), люди, которые ранее не были одеты (т.е. кому Ориентировочную дату сдачи поставили принудительно как дату формирования отчета) пропадают (см рис 2)
Помогите найти ошибку
В предыдущей версии таблица Предытог1 не было, добавила в попытке найти ошибку.
Конфигурация Управление ПроизводственнымПредприятием.
Задача стояла следующая: контролировать кто когда получал спецодежду и когда необходимо выдать в следующий раз.
Ниже приведен запрос. Он последовательно выбирает следующую информацию:
1. Кто вообще работает (не уволен, не в декрете)
2. Кто должен получать спецодежду (собственный регистр, к нему вопросов нет, работает)
3. Когда последний раз получал спецодежду, при этом по сроку полезного использования вычисляется ОриентировочнаяДатаСдачи (она же дата, когда нужно одеть в следующий раз). Если человек вновь прибывший, то в качестве ОриентировочнаяДатаСдачи ставится дата формирования отчета.
Формально отчет выдает нужные мне данные (см первый рисунок), но как только указывается отбор по периоду (при этом дата формирования отчета попадает в указанный период), люди, которые ранее не были одеты (т.е. кому Ориентировочную дату сдачи поставили принудительно как дату формирования отчета) пропадают (см рис 2)
Помогите найти ошибку
ВЫБРАТЬ
РаботникиОрганизации.Сотрудник,
РаботникиОрганизации.Сотрудник.Физлицо,
РаботникиОрганизации.Сотрудник.ТекущаяДолжностьКомпании,
ВЫБОР
КОГДА ВЫБОР
КОГДА РаботникиОрганизации.ПериодЗавершения <= &Период
И РаботникиОрганизации.ПериодЗавершения <> ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0)
ТОГДА РаботникиОрганизации.ПричинаИзмененияСостоянияЗавершения
ИНАЧЕ РаботникиОрганизации.ПричинаИзмененияСостояния
КОНЕЦ = ЗНАЧЕНИЕ(Перечисление.ПричиныИзмененияСостояния.Увольнение)
ТОГДА ЗНАЧЕНИЕ(Перечисление.СостоянияРаботникаОрганизации.НеРаботает)
ИНАЧЕ ЕСТЬNULL(ВЫБОР
КОГДА &Период >= СостояниеРаботниковОрганизации.ПериодЗавершения
И СостояниеРаботниковОрганизации.ПериодЗавершения <> ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0)
ТОГДА СостояниеРаботниковОрганизации.СостояниеЗавершения
ИНАЧЕ СостояниеРаботниковОрганизации.Состояние
КОНЕЦ, ЗНАЧЕНИЕ(Перечисление.СостоянияРаботникаОрганизации.Работает))
КОНЕЦ КАК Состояние,
РаботникиОрганизации.Сотрудник.ТекущееПодразделениеКомпании,
РаботникиОрганизации.Должность,
РаботникиОрганизации.ПодразделениеОрганизации
ПОМЕСТИТЬ СписокРаботников
ИЗ
РегистрСведений.РаботникиОрганизаций.СрезПоследних КАК РаботникиОрганизации
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СостояниеРаботниковОрганизаций.СрезПоследних КАК СостояниеРаботниковОрганизации
ПО РаботникиОрганизации.Организация = СостояниеРаботниковОрганизации.Организация
И РаботникиОрганизации.Сотрудник = СостояниеРаботниковОрганизации.Сотрудник
;
//////////////////////////////////////////////////////////// ////////////////////
ВЫБРАТЬ
СписокРаботников.Сотрудник,
СписокРаботников.СотрудникФизлицо,
СписокРаботников.СотрудникТекущаяДолжностьКомпании,
СписокРаботников.Состояние,
СписокРаботников.СотрудникТекущееПодразделениеКомпании,
СписокРаботников.Должность,
СписокРаботников.ПодразделениеОрганизации
ПОМЕСТИТЬ ОниРаботают
ИЗ
СписокРаботников КАК СписокРаботников
ГДЕ
СписокРаботников.Состояние В(&Состояние)
;
//////////////////////////////////////////////////////////// ////////////////////
ВЫБРАТЬ
ПотребностьВСпецОдеждеСрезПоследних.ФизЛицо,
ПотребностьВСпецОдеждеСрезПоследних.РазмерОбуви,
ПотребностьВСпецОдеждеСрезПоследних.РазмерОдежды,
ПотребностьВСпецОдеждеСрезПоследних.Рост,
ПакетСпецодеждыСписокСпецодежды.Номенклатура,
ПакетСпецодеждыСписокСпецодежды.НазначениеИспользования,
ПотребностьВСпецОдеждеСрезПоследних.Действие
ПОМЕСТИТЬ ПотребностиИРазмеры
ИЗ
РегистрСведений.ПотребностьВСпецОдежде.СрезПоследних(&Период, ) КАК ПотребностьВСпецОдеждеСрезПоследних
ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ПакетСпецодежды.СписокСпецодежды КАК ПакетСпецодеждыСписокСпецодежды
ПО ПотребностьВСпецОдеждеСрезПоследних.ПакетОдежды = ПакетСпецодеждыСписокСпецодежды.Ссылка
;
//////////////////////////////////////////////////////////// ////////////////////
ВЫБРАТЬ
ПотребностиИРазмеры.РазмерОбуви,
ПотребностиИРазмеры.РазмерОдежды,
ПотребностиИРазмеры.Рост,
ПотребностиИРазмеры.Номенклатура,
ПотребностиИРазмеры.НазначениеИспользования,
ПотребностиИРазмеры.ФизЛицо,
ПотребностиИРазмеры.Действие,
ОниРаботают.СотрудникТекущаяДолжностьКомпании КАК Должность,
ОниРаботают.СотрудникТекущееПодразделениеКомпании КАК Подразделение
ПОМЕСТИТЬ КогоВоЧтоОдеть
ИЗ
ПотребностиИРазмеры КАК ПотребностиИРазмеры
ВНУТРЕННЕЕ СОЕДИНЕНИЕ ОниРаботают КАК ОниРаботают
ПО ПотребностиИРазмеры.ФизЛицо = ОниРаботают.СотрудникФизлицо
;
//////////////////////////////////////////////////////////// ////////////////////
ВЫБРАТЬ
ПередачаМатериаловВЭксплуатациюМатериалы.Ссылка,
ПередачаМатериаловВЭксплуатациюМатериалы.НомерСтроки,
ПередачаМатериаловВЭксплуатациюМатериалы.ЕдиницаИзмерения,
ПередачаМатериаловВЭксплуатациюМатериалы.Количество,
ПередачаМатериаловВЭксплуатациюМатериалы.Коэффициент,
ПередачаМатериаловВЭксплуатациюМатериалы.НазначениеИспользования,
ПередачаМатериаловВЭксплуатациюМатериалы.Номенклатура,
ПередачаМатериаловВЭксплуатациюМатериалы.СерияНоменклатуры,
ПередачаМатериаловВЭксплуатациюМатериалы.ФизЛицо,
ПередачаМатериаловВЭксплуатациюМатериалы.ХарактеристикаНоменклатуры,
ПередачаМатериаловВЭксплуатациюМатериалы.НазначениеИспользования.СрокПолезногоИспользования,
ПередачаМатериаловВЭксплуатациюМатериалы.Ссылка.Дата,
ДОБАВИТЬКДАТЕ(ПередачаМатериаловВЭксплуатациюМатериалы.Ссылка.Дата, МЕСЯЦ, ПередачаМатериаловВЭксплуатациюМатериалы.НазначениеИспользования.СрокПолезногоИспользования) КАК ОриентировочнаяДатаСдачи
ПОМЕСТИТЬ ЭксплуатацияСНазначениемИспользованияИСроком
ИЗ
Документ.ПередачаМатериаловВЭксплуатацию.Материалы КАК ПередачаМатериаловВЭксплуатациюМатериалы
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
ВводНачальныхОстатковМатериаловВЭксплуатацииМатериалы.Ссылка,
ВводНачальныхОстатковМатериаловВЭксплуатацииМатериалы.НомерСтроки,
ВводНачальныхОстатковМатериаловВЭксплуатацииМатериалы.ЕдиницаИзмерения,
ВводНачальныхОстатковМатериаловВЭксплуатацииМатериалы.Количество,
ВводНачальныхОстатковМатериаловВЭксплуатацииМатериалы.Коэффициент,
ВводНачальныхОстатковМатериаловВЭксплуатацииМатериалы.НазначениеИспользования,
ВводНачальныхОстатковМатериаловВЭксплуатацииМатериалы.Номенклатура,
ВводНачальныхОстатковМатериаловВЭксплуатацииМатериалы.СерияНоменклатуры,
ВводНачальныхОстатковМатериаловВЭксплуатацииМатериалы.ФизЛицо,
ВводНачальныхОстатковМатериаловВЭксплуатацииМатериалы.ХарактеристикаНоменклатуры,
ВводНачальныхОстатковМатериаловВЭксплуатацииМатериалы.НазначениеИспользования.СрокПолезногоИспользования,
ВводНачальныхОстатковМатериаловВЭксплуатацииМатериалы.ДатаПередачиВЭксплуатацию,
ДОБАВИТЬКДАТЕ(ВводНачальныхОстатковМатериаловВЭксплуатацииМатериалы.ДатаПередачиВЭксплуатацию, МЕСЯЦ, ВводНачальныхОстатковМатериаловВЭксплуатацииМатериалы.НазначениеИспользования.СрокПолезногоИспользования)
ИЗ
Документ.ВводНачальныхОстатковМатериаловВЭксплуатации.Материалы КАК ВводНачальныхОстатковМатериаловВЭксплуатацииМатериалы
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
СписаниеМатериаловИзЭксплуатацииМатериалы.Ссылка,
СписаниеМатериаловИзЭксплуатацииМатериалы.НомерСтроки,
СписаниеМатериаловИзЭксплуатацииМатериалы.ЕдиницаИзмерения,
СписаниеМатериаловИзЭксплуатацииМатериалы.Количество,
СписаниеМатериаловИзЭксплуатацииМатериалы.Коэффициент,
СписаниеМатериаловИзЭксплуатацииМатериалы.НазначениеИспользования,
СписаниеМатериаловИзЭксплуатацииМатериалы.Номенклатура,
СписаниеМатериаловИзЭксплуатацииМатериалы.СерияНоменклатуры,
СписаниеМатериаловИзЭксплуатацииМатериалы.ФизЛицо,
СписаниеМатериаловИзЭксплуатацииМатериалы.ХарактеристикаНоменклатуры,
СписаниеМатериаловИзЭксплуатацииМатериалы.НазначениеИспользования.СрокПолезногоИспользования,
СписаниеМатериаловИзЭксплуатацииМатериалы.Ссылка.Дата,
ДОБАВИТЬКДАТЕ(СписаниеМатериаловИзЭксплуатацииМатериалы.Ссылка.Дата, МЕСЯЦ, СписаниеМатериаловИзЭксплуатацииМатериалы.НазначениеИспользования.СрокПолезногоИспользования)
ИЗ
Документ.СписаниеМатериаловИзЭксплуатации.Материалы КАК СписаниеМатериаловИзЭксплуатацииМатериалы
;
//////////////////////////////////////////////////////////// ////////////////////
ВЫБРАТЬ
МатериалыВЭксплуатацииОстатки.Подразделение,
МатериалыВЭксплуатацииОстатки.Номенклатура,
МатериалыВЭксплуатацииОстатки.ХарактеристикаНоменклатуры,
МатериалыВЭксплуатацииОстатки.СерияНоменклатуры,
МатериалыВЭксплуатацииОстатки.КоличествоОстаток,
ОниРаботают.СотрудникТекущаяДолжностьКомпании,
ОниРаботают.СотрудникТекущееПодразделениеКомпании,
ОниРаботают.Сотрудник,
ОниРаботают.СотрудникФизлицо,
ОниРаботают.Должность
ПОМЕСТИТЬ ОстаткиМатериаловВЭксплуатации
ИЗ
ОниРаботают КАК ОниРаботают
ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрНакопления.МатериалыВЭксплуатации.Остатки КАК МатериалыВЭксплуатацииОстатки
ПО ОниРаботают.СотрудникФизлицо = МатериалыВЭксплуатацииОстатки.ФизЛицо
;
//////////////////////////////////////////////////////////// ////////////////////
ВЫБРАТЬ
МатериалыВЭксплуатацииОстаткиИОбороты.Номенклатура КАК Номенклатура,
МатериалыВЭксплуатацииОстаткиИОбороты.ХарактеристикаНоменклатуры КАК ХарактеристикаНоменклатуры,
МатериалыВЭксплуатацииОстаткиИОбороты.СерияНоменклатуры КАК СерияНоменклатуры,
ОстаткиМатериаловВЭксплуатации.СотрудникТекущаяДолжностьКомпании КАК СотрудникТекущаяДолжностьКомпании,
ЭксплуатацияСНазначениемИспользованияИСроком.НазначениеИспользования,
ЭксплуатацияСНазначениемИспользованияИСроком.НазначениеИспользованияСрокПолезногоИспользования КАК СрокПолезногоИспользования,
ЭксплуатацияСНазначениемИспользованияИСроком.Дата КАК Дата,
ЭксплуатацияСНазначениемИспользованияИСроком.ОриентировочнаяДатаСдачи КАК ОриентировочнаяДатаСдачи,
ОстаткиМатериаловВЭксплуатации.СотрудникТекущееПодразделениеКомпании КАК СотрудникТекущееПодразделениеКомпании,
NULL КАК РазмерОбуви,
NULL КАК РазмерОдежды,
NULL КАК Рост,
ОстаткиМатериаловВЭксплуатации.Сотрудник,
ОстаткиМатериаловВЭксплуатации.СотрудникФизлицо,
МатериалыВЭксплуатацииОстаткиИОбороты.Регистратор
ПОМЕСТИТЬ ОстаткиНазначениеИДатаСдачи
ИЗ
ОстаткиМатериаловВЭксплуатации КАК ОстаткиМатериаловВЭксплуатации
ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.МатериалыВЭксплуатации.ОстаткиИОбороты(, &Период, Регистратор, , ) КАК МатериалыВЭксплуатацииОстаткиИОбороты
ЛЕВОЕ СОЕДИНЕНИЕ ЭксплуатацияСНазначениемИспользованияИСроком КАК ЭксплуатацияСНазначениемИспользованияИСроком
ПО МатериалыВЭксплуатацииОстаткиИОбороты.Регистратор = ЭксплуатацияСНазначениемИспользованияИСроком.Ссылка
И МатериалыВЭксплуатацииОстаткиИОбороты.Номенклатура = ЭксплуатацияСНазначениемИспользованияИСроком.Номенклатура
И МатериалыВЭксплуатацииОстаткиИОбороты.СерияНоменклатуры = ЭксплуатацияСНазначениемИспользованияИСроком.СерияНоменклатуры
И МатериалыВЭксплуатацииОстаткиИОбороты.ХарактеристикаНоменклатуры = ЭксплуатацияСНазначениемИспользованияИСроком.ХарактеристикаНоменклатуры
И МатериалыВЭксплуатацииОстаткиИОбороты.ФизЛицо = ЭксплуатацияСНазначениемИспользованияИСроком.ФизЛицо
ПО ОстаткиМатериаловВЭксплуатации.Номенклатура = МатериалыВЭксплуатацииОстаткиИОбороты.Номенклатура
И ОстаткиМатериаловВЭксплуатации.ХарактеристикаНоменклатуры = МатериалыВЭксплуатацииОстаткиИОбороты.ХарактеристикаНоменклатуры
И ОстаткиМатериаловВЭксплуатации.СерияНоменклатуры = МатериалыВЭксплуатацииОстаткиИОбороты.СерияНоменклатуры
И ОстаткиМатериаловВЭксплуатации.СотрудникФизлицо = МатериалыВЭксплуатацииОстаткиИОбороты.ФизЛицо
ГДЕ
МатериалыВЭксплуатацииОстаткиИОбороты.КоличествоПриход > 0
;
//////////////////////////////////////////////////////////// ////////////////////
ВЫБРАТЬ
ОстаткиНазначениеИДатаСдачи.Номенклатура КАК ФактическиВыданнаяСпецовка,
ОстаткиНазначениеИДатаСдачи.ХарактеристикаНоменклатуры,
ОстаткиНазначениеИДатаСдачи.НазначениеИспользования,
ОстаткиНазначениеИДатаСдачи.СрокПолезногоИспользования,
ОстаткиНазначениеИДатаСдачи.Дата КАК ДатаВыдачи,
ОстаткиНазначениеИДатаСдачи.ОриентировочнаяДатаСдачи КАК ОриентировочнаяДатаСдачи,
КогоВоЧтоОдеть.НазначениеИспользования КАК ДолжноеНазначениеИспользования,
КогоВоЧтоОдеть.Номенклатура КАК НеобходимаяСпецовка,
КогоВоЧтоОдеть.ФизЛицо КАК ФизЛицо,
КогоВоЧтоОдеть.Должность КАК Должность,
КогоВоЧтоОдеть.РазмерОбуви КАК РазмерОбуви,
КогоВоЧтоОдеть.РазмерОдежды КАК РазмерОдежды,
КогоВоЧтоОдеть.Рост КАК Рост,
ОстаткиНазначениеИДатаСдачи.СотрудникТекущееПодразделениеКомпании
ПОМЕСТИТЬ Предитог1
ИЗ
КогоВоЧтоОдеть КАК КогоВоЧтоОдеть
ЛЕВОЕ СОЕДИНЕНИЕ ОстаткиНазначениеИДатаСдачи КАК ОстаткиНазначениеИДатаСдачи
ПО КогоВоЧтоОдеть.ФизЛицо = ОстаткиНазначениеИДатаСдачи.СотрудникФизлицо
И КогоВоЧтоОдеть.Номенклатура = ОстаткиНазначениеИДатаСдачи.Номенклатура
;
//////////////////////////////////////////////////////////// ////////////////////
ВЫБРАТЬ
Предитог1.ФактическиВыданнаяСпецовка,
Предитог1.ХарактеристикаНоменклатуры,
Предитог1.НазначениеИспользования,
Предитог1.СрокПолезногоИспользования,
МАКСИМУМ(Предитог1.ДатаВыдачи) КАК ДатаВыдачи,
Предитог1.ДолжноеНазначениеИспользования,
Предитог1.НеобходимаяСпецовка,
Предитог1.ФизЛицо,
Предитог1.Должность,
Предитог1.РазмерОбуви,
Предитог1.РазмерОдежды,
Предитог1.Рост,
Предитог1.СотрудникТекущееПодразделениеКомпании,
МАКСИМУМ(ВЫБОР
КОГДА Предитог1.ОриентировочнаяДатаСдачи ЕСТЬ NULL
ТОГДА &Период
ИНАЧЕ Предитог1.ОриентировочнаяДатаСдачи
КОНЕЦ) КАК ОриентировочнаяДатаСдачи
ПОМЕСТИТЬ Предытог
ИЗ
Предитог1 КАК Предитог1
СГРУППИРОВАТЬ ПО
Предитог1.ФактическиВыданнаяСпецовка,
Предитог1.СотрудникТекущееПодразделениеКомпании,
Предитог1.НеобходимаяСпецовка,
Предитог1.Должность,
Предитог1.НазначениеИспользования,
Предитог1.ДолжноеНазначениеИспользования,
Предитог1.ФизЛицо,
Предитог1.ХарактеристикаНоменклатуры,
Предитог1.СрокПолезногоИспользования,
Предитог1.РазмерОбуви,
Предитог1.РазмерОдежды,
Предитог1.Рост
;
//////////////////////////////////////////////////////////// ////////////////////
ВЫБРАТЬ
Предытог.ФактическиВыданнаяСпецовка,
Предытог.ХарактеристикаНоменклатуры,
Предытог.НазначениеИспользования,
Предытог.СрокПолезногоИспользования,
Предытог.ДатаВыдачи КАК ДатаВыдачи,
Предытог.ДолжноеНазначениеИспользования,
Предытог.НеобходимаяСпецовка,
Предытог.ФизЛицо КАК ФизЛицо,
Предытог.Должность,
Предытог.РазмерОбуви,
Предытог.РазмерОдежды,
Предытог.Рост,
Предытог.СотрудникТекущееПодразделениеКомпании,
Предытог.ОриентировочнаяДатаСдачи КАК ОриентировочнаяДатаСдачи
ИЗ
Предытог КАК Предытог
ПоказатьВ предыдущей версии таблица Предытог1 не было, добавила в попытке найти ошибку.
Прикрепленные файлы:
По теме из базы знаний
- Работа со схемой запроса
- Управляемая консоль отчетов – новый функциональный инструмент для работы с запросами и СКД в управляемых формах
- Как читать чужой код? Часть 3. Разбор и доработка запросов
- Отправка счетов и актов за период из 1С:Бухгалтерии 3.0 программно с помощью функций БСП
- Модель запроса SQL
Свернуть все
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот