Доброго времени суток, Коллеги! Копаюсь в новой для меня конфигурации и не могу решить простую задачу, а именно - осуществить печать печатной формы ТОРГ12 документа РеализацияТоваровУслуг без проведения документа (только сохранив).
Первое, что сделал - это изменил параметр команды печати в процедуре ДобавитьКомандыПечати из общего модуля РеализацияТоваровУслугЛокализация:
После этого перестало появляться окно с просьбой провести документ перед печатью формы.
Однако, появилась следующая проблема, а именно:
В случае, если в таблице Товары документа РеализацияТоваровУслуг нет услуг, то появляется ошибка "Печатная форма недоступна" и сообщение "В документе Реализация товаров и услуг №Док от ДатаВремя отсутствуют товары. Печать ТОРГ-12 не требуется".
После того, как мы добавляем услугу в таблицу Товары документа РеализацияТоваровУслуг печатная форма выводится на печать, но в перечень товаров выводится только добавленная услуга.
После этого я решил капнуть дальше и пошел смотреть как формируется запрос в функции ПолучитьДанныеДляПечатнойФормыТОРГ12 из общего модуля РеализацияТоваровУслугЛокализация.
Функция ПолучитьДанныеДляПечатнойФормыТОРГ12
Функция ПолучитьДанныеДляПечатнойФормыТОРГ12(ПараметрыПечати, МассивОбъектов) Экспорт
КолонкаКодов = ФормированиеПечатныхФорм.ДополнительнаяКолонкаПечатныхФормДокументов().ИмяКолонки;
Если Не ЗначениеЗаполнено(КолонкаКодов) Тогда
КолонкаКодов = "Код";
КонецЕсли;
МенеджерВременныхТаблиц = Новый МенеджерВременныхТаблиц;
Запрос = Новый Запрос;
Запрос.МенеджерВременныхТаблиц = МенеджерВременныхТаблиц;
Запрос.Текст = "
|ВЫБРАТЬ
| ДанныеДокументов.Ссылка КАК Ссылка,
| ДанныеДокументов.Валюта КАК Валюта,
| ДанныеДокументов.Организация.ВалютаРегламентированногоУчета КАК ВалютаРегламентированногоУчета
|
|ПОМЕСТИТЬ ТаблицаДанныхДокументов
|ИЗ
| Документ.РеализацияТоваровУслуг КАК ДанныеДокументов
|
|ГДЕ
| ДанныеДокументов.Ссылка В (&МассивОбъектов)
|
|ИНДЕКСИРОВАТЬ ПО
| Ссылка
|;";
Запрос.УстановитьПараметр("МассивОбъектов", МассивОбъектов);
Запрос.Выполнить();
ПараметрыЗаполнения = ПродажиСервер.ПараметрыЗаполненияВременнойТаблицыТоваров();
Если ПараметрыПечати.Свойство("ВыводитьГТД") Тогда
ПараметрыЗаполнения.ВключаяНомераГТД = ПараметрыПечати.ВыводитьГТД;
КонецЕсли;
ПараметрыЗаполнения.ОбработатьНастройкиПечатиНаборов = Истина;
ПоместитьВременнуюТаблицуТоваров(МенеджерВременныхТаблиц, ПараметрыЗаполнения);
ПродажиСервер.ПоместитьВременнуюТаблицуКоэффициентыУпаковок(МенеджерВременныхТаблиц, "РеализацияТоваровУслугТаблицаТоваров");
ОтветственныеЛицаСервер.СформироватьВременнуюТаблицуОтветственныхЛицДокументов(МассивОбъектов, МенеджерВременныхТаблиц);
Запрос.Текст =
"ВЫБРАТЬ
| РеализацияТоваровУслуг.Ссылка КАК Ссылка,
| РеализацияТоваровУслуг.Номер КАК Номер,
| РеализацияТоваровУслуг.Дата КАК Дата,
| РеализацияТоваровУслуг.Статус КАК Статус,
| РеализацияТоваровУслуг.Партнер КАК Партнер,
| РеализацияТоваровУслуг.Контрагент КАК Контрагент,
| ВЫБОР
| КОГДА РеализацияТоваровУслуг.Организация.ОбособленноеПодразделение
| ТОГДА РеализацияТоваровУслуг.Организация.ГоловнаяОрганизация
| ИНАЧЕ РеализацияТоваровУслуг.Организация
| КОНЕЦ КАК Организация,
| ТаблицаОтветственныеЛица.РуководительНаименование КАК Руководитель,
| ТаблицаОтветственныеЛица.РуководительДолжность КАК ДолжностьРуководителя,
| ТаблицаОтветственныеЛица.ГлавныйБухгалтерНаименование КАК ГлавныйБухгалтер,
| РеализацияТоваровУслуг.Отпустил КАК Кладовщик,
| РеализацияТоваровУслуг.ОтпустилДолжность КАК ДолжностьКладовщика,
| РеализацияТоваровУслуг.Организация.Префикс КАК Префикс,
| РеализацияТоваровУслуг.Основание КАК Основание,
| РеализацияТоваровУслуг.ОснованиеДата КАК ОснованиеДата,
| РеализацияТоваровУслуг.ОснованиеНомер КАК ОснованиеНомер,
| ВЫБОР
| КОГДА РеализацияТоваровУслуг.Грузополучатель = ЗНАЧЕНИЕ(Справочник.Контрагенты.ПустаяСсылка)
| ТОГДА РеализацияТоваровУслуг.Контрагент
| ИНАЧЕ РеализацияТоваровУслуг.Грузополучатель
| КОНЕЦ КАК Грузополучатель,
| ВЫБОР
| КОГДА РеализацияТоваровУслуг.Грузоотправитель = ЗНАЧЕНИЕ(Справочник.Контрагенты.ПустаяСсылка)
| ТОГДА РеализацияТоваровУслуг.Организация
| ИНАЧЕ РеализацияТоваровУслуг.Грузоотправитель
| КОНЕЦ КАК Грузоотправитель,
| РеализацияТоваровУслуг.БанковскийСчетОрганизации КАК БанковскийСчетОрганизации,
| РеализацияТоваровУслуг.БанковскийСчетКонтрагента КАК БанковскийСчетКонтрагента,
| РеализацияТоваровУслуг.БанковскийСчетГрузоотправителя КАК БанковскийСчетГрузоотправителя,
| РеализацияТоваровУслуг.БанковскийСчетГрузополучателя КАК БанковскийСчетГрузополучателя,
| РеализацияТоваровУслуг.АдресДоставки КАК АдресДоставки,
| НЕОПРЕДЕЛЕНО КАК Подразделение,
| РеализацияТоваровУслуг.Валюта КАК Валюта,
| РеализацияТоваровУслуг.НалогообложениеНДС КАК НалогообложениеНДС,
| РеализацияТоваровУслуг.ДоверенностьНомер КАК ДоверенностьНомер,
| РеализацияТоваровУслуг.ДоверенностьДата КАК ДоверенностьДата,
| РеализацияТоваровУслуг.ДоверенностьВыдана КАК ДоверенностьВыдана,
| РеализацияТоваровУслуг.ДоверенностьЛицо КАК ДоверенностьЛицо,
| &ЕдиницаИзмеренияВеса КАК ЕдиницаИзмеренияВеса
|ИЗ
| Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ ТаблицаДанныхДокументов КАК ДанныеДокументов
| ПО РеализацияТоваровУслуг.Ссылка = ДанныеДокументов.Ссылка
| ЛЕВОЕ СОЕДИНЕНИЕ ТаблицаОтветственныеЛица КАК ТаблицаОтветственныеЛица
| ПО РеализацияТоваровУслуг.Ссылка = ТаблицаОтветственныеЛица.Ссылка
|
|УПОРЯДОЧИТЬ ПО
| Ссылка
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| ТаблицаТоваров.Ссылка КАК Ссылка,
| ТаблицаТоваров.НомерСтроки КАК НомерСтроки,
| ВЫБОР
| КОГДА &ВыводитьБазовыеЕдиницыИзмерения
| ТОГДА ТаблицаТоваров.Номенклатура.ЕдиницаИзмерения
| ИНАЧЕ &ТекстЗапросаЕдиницаИзмерения
| КОНЕЦ КАК ЕдиницаИзмерения,
| ВЫБОР
| КОГДА &ВыводитьБазовыеЕдиницыИзмерения
| ТОГДА ТаблицаТоваров.Номенклатура.ЕдиницаИзмерения.Представление
| ИНАЧЕ &ТекстЗапросаНаименованиеЕдиницыИзмерения1
| КОНЕЦ КАК ЕдиницаИзмеренияНаименование,
| ВЫБОР
| КОГДА &ВыводитьБазовыеЕдиницыИзмерения
| ТОГДА ТаблицаТоваров.Номенклатура.ЕдиницаИзмерения.Код
| ИНАЧЕ &ТекстЗапросаКодЕдиницыИзмерения
| КОНЕЦ КАК ЕдиницаИзмеренияКод,
| ТаблицаТоваров.Упаковка КАК Упаковка,
| ВЫБОР
| КОГДА ЕСТЬNULL(&ТекстЗапросаКоэффициентУпаковки, 1) = 1
| ТОГДА """"
| ИНАЧЕ ТаблицаТоваров.Упаковка.Наименование
| КОНЕЦ КАК УпаковкаНаименование,
| ВЫБОР
| КОГДА &ВыводитьБазовыеЕдиницыИзмерения
| ТОГДА &ТекстЗапросаНаименованиеЕдиницыИзмерения1
| ИНАЧЕ &ТекстЗапросаНаименованиеЕдиницыИзмерения2
| КОНЕЦ КАК ВидУпаковки,
| ВЫБОР
| КОГДА НЕ &ВыводитьБазовыеЕдиницыИзмерения
| ТОГДА ТаблицаТоваров.КоличествоУпаковок
| ИНАЧЕ ТаблицаТоваров.Количество
| КОНЕЦ КАК Количество,
| ВЫБОР
| КОГДА НЕ &ВыводитьБазовыеЕдиницыИзмерения
| И НЕ ТаблицаТоваров.ЭтоНабор
| ТОГДА ВЫБОР
| КОГДА КоэффициентыУпаковок.Количество < КоэффициентыУпаковок.КоэффициентВложеннойУпаковки
| ИЛИ ТаблицаТоваров.Упаковка <> ЗНАЧЕНИЕ(Справочник.УпаковкиЕдиницыИзмерения.ПустаяСсылка)
| И ((ТаблицаТоваров.Номенклатура.ВесИспользовать
| И ТаблицаТоваров.Номенклатура.ВесМожноУказыватьВДокументах
| И ТаблицаТоваров.Упаковка = ТаблицаТоваров.Номенклатура.ВесЕдиницаИзмерения)
| ИЛИ (ТаблицаТоваров.Номенклатура.ОбъемИспользовать
| И ТаблицаТоваров.Номенклатура.ОбъемМожноУказыватьВДокументах
| И ТаблицаТоваров.Упаковка = ТаблицаТоваров.Номенклатура.ОбъемЕдиницаИзмерения)
| ИЛИ (ТаблицаТоваров.Номенклатура.ДлинаИспользовать
| И ТаблицаТоваров.Номенклатура.ДлинаМожноУказыватьВДокументах
| И ТаблицаТоваров.Упаковка = ТаблицаТоваров.Номенклатура.ДлинаЕдиницаИзмерения)
| ИЛИ (ТаблицаТоваров.Номенклатура.ПлощадьИспользовать
| И ТаблицаТоваров.Номенклатура.ПлощадьМожноУказыватьВДокументах
| И ТаблицаТоваров.Упаковка = ТаблицаТоваров.Номенклатура.ПлощадьЕдиницаИзмерения))
| ТОГДА КоэффициентыУпаковок.КоличествоУпаковок
| ИНАЧЕ ТаблицаТоваров.Количество / КоэффициентыУпаковок.КоэффициентВложеннойУпаковки
| КОНЕЦ
| ИНАЧЕ ВЫБОР
| КОГДА ТаблицаТоваров.Упаковка <> ЗНАЧЕНИЕ(Справочник.УпаковкиЕдиницыИзмерения.ПустаяСсылка)
| И &ВыводитьБазовыеЕдиницыИзмерения
| И ((ТаблицаТоваров.Номенклатура.ВесИспользовать
| И ТаблицаТоваров.Номенклатура.ВесМожноУказыватьВДокументах
| И ТаблицаТоваров.Упаковка = ТаблицаТоваров.Номенклатура.ВесЕдиницаИзмерения)
| ИЛИ (ТаблицаТоваров.Номенклатура.ОбъемИспользовать
| И ТаблицаТоваров.Номенклатура.ОбъемМожноУказыватьВДокументах
| И ТаблицаТоваров.Упаковка = ТаблицаТоваров.Номенклатура.ОбъемЕдиницаИзмерения)
| ИЛИ (ТаблицаТоваров.Номенклатура.ДлинаИспользовать
| И ТаблицаТоваров.Номенклатура.ДлинаМожноУказыватьВДокументах
| И ТаблицаТоваров.Упаковка = ТаблицаТоваров.Номенклатура.ДлинаЕдиницаИзмерения)
| ИЛИ (ТаблицаТоваров.Номенклатура.ПлощадьИспользовать
| И ТаблицаТоваров.Номенклатура.ПлощадьМожноУказыватьВДокументах
| И ТаблицаТоваров.Упаковка = ТаблицаТоваров.Номенклатура.ПлощадьЕдиницаИзмерения))
| ТОГДА ТаблицаТоваров.КоличествоУпаковок
| КОГДА ТаблицаТоваров.Упаковка = ЗНАЧЕНИЕ(Справочник.УпаковкиЕдиницыИзмерения.ПустаяСсылка)
| ИЛИ ТаблицаТоваров.Упаковка = (ВЫБОР
| КОГДА &ВыводитьБазовыеЕдиницыИзмерения
| ТОГДА ТаблицаТоваров.Номенклатура.ЕдиницаИзмерения
| ИНАЧЕ &ТекстЗапросаЕдиницаИзмерения
| КОНЕЦ)
| ТОГДА ТаблицаТоваров.Количество
| ИНАЧЕ ТаблицаТоваров.Количество / ЕСТЬNULL(&ТекстЗапросаКоэффициентУпаковки, 1)
| КОНЕЦ
| КОНЕЦ КАК КоличествоМестДробное,
| ВЫБОР
| КОГДА НЕ &ВыводитьБазовыеЕдиницыИзмерения
| И Не ТаблицаТоваров.ЭтоНабор
| ТОГДА ВЫБОР
| КОГДА ТаблицаТоваров.Упаковка <> ЗНАЧЕНИЕ(Справочник.УпаковкиЕдиницыИзмерения.ПустаяСсылка)
| И ТаблицаТоваров.Упаковка = &ТекстЗапросаЕдиницаИзмерения
| ТОГДА 1
| ИНАЧЕ КоэффициентыУпаковок.КоэффициентВложеннойУпаковки
| КОНЕЦ
| ИНАЧЕ ВЫБОР
| КОГДА ТаблицаТоваров.Упаковка = ЗНАЧЕНИЕ(Справочник.УпаковкиЕдиницыИзмерения.ПустаяСсылка)
| ИЛИ ТаблицаТоваров.Упаковка = (ВЫБОР
| КОГДА &ВыводитьБазовыеЕдиницыИзмерения
| ТОГДА ТаблицаТоваров.Номенклатура.ЕдиницаИзмерения
| ИНАЧЕ &ТекстЗапросаЕдиницаИзмерения
| КОНЕЦ)
| ТОГДА 1
| ИНАЧЕ &ТекстЗапросаКоэффициентУпаковки
| КОНЕЦ
| КОНЕЦ КАК КоличествоВОдномМесте,
| ВЫБОР
| КОГДА &ВыводитьБазовыеЕдиницыИзмерения
| ТОГДА &ТекстЗапросаВесУпаковки
| ИНАЧЕ &ТекстЗапросаВесВидаУпаковки
| КОНЕЦ КАК МассаБруттоОдногоМеста,
| ЕСТЬNULL(КоэффициентыУпаковок.КоэффициентУпаковки, 1) * ТаблицаТоваров.МассаНеттоНоменклатуры КАК
| МассаНеттоОднойУпаковки,
| ТаблицаТоваров.НомерГТД КАК НомерГТД,
| ТаблицаТоваров.Номенклатура КАК Номенклатура,
| ТаблицаТоваров.Характеристика КАК Характеристика,
| 1 КАК КоэффициентУпаковки
|ПОМЕСТИТЬ РасчитанныеДанныеУпаковокЕдиницИзмерения
|ИЗ
| РеализацияТоваровУслугТаблицаТоваров КАК ТаблицаТоваров
| ЛЕВОЕ СОЕДИНЕНИЕ КоэффициентыУпаковок КАК КоэффициентыУпаковок
| ПО ТаблицаТоваров.Ссылка = КоэффициентыУпаковок.Ссылка
| И ТаблицаТоваров.НомерСтроки = КоэффициентыУпаковок.НомерСтроки
| И ТаблицаТоваров.Номенклатура = КоэффициентыУпаковок.Номенклатура
| И ТаблицаТоваров.КоличествоУпаковок = КоэффициентыУпаковок.КоличествоУпаковок
| И (НЕ &ВыводитьБазовыеЕдиницыИзмерения)
|ГДЕ
| (ТаблицаТоваров.ЭтоТовар
| ИЛИ &ВыводитьУслуги)
|
|ИНДЕКСИРОВАТЬ ПО
| Ссылка,
| НомерСтроки,
| Номенклатура,
| Характеристика,
| НомерГТД
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| ТаблицаТоваров.Ссылка КАК Ссылка,
| ТаблицаТоваров.ВариантПредставленияНабораВПечатныхФормах КАК ВариантПредставленияНабораВПечатныхФормах,
| ТаблицаТоваров.ВариантРасчетаЦеныНабора КАК ВариантРасчетаЦеныНабора,
| ТаблицаТоваров.НоменклатураНабора КАК НоменклатураНабора,
| ТаблицаТоваров.ХарактеристикаНабора КАК ХарактеристикаНабора,
| ТаблицаТоваров.ЭтоКомплектующие КАК ЭтоКомплектующие,
| ТаблицаТоваров.ЭтоНабор КАК ЭтоНабор,
| ТаблицаТоваров.ПолныйНабор КАК ПолныйНабор,
| ТаблицаТоваров.Номенклатура КАК Номенклатура,
| ТаблицаТоваров.Номенклатура.НаименованиеПолное КАК НоменклатураНаименование,
| ТаблицаТоваров.Номенклатура.Наименование КАК НоменклатураНаименованиеКраткое,
| ВЫБОР
| КОГДА &КолонкаКодов = ""Артикул""
| ТОГДА ТаблицаТоваров.Номенклатура.Артикул
| ИНАЧЕ ТаблицаТоваров.Номенклатура.Код
| КОНЕЦ КАК НоменклатураКод,
| ДанныеУпаковок.ЕдиницаИзмерения КАК ЕдиницаИзмерения,
| ДанныеУпаковок.ЕдиницаИзмеренияНаименование КАК ЕдиницаИзмеренияНаименование,
| ДанныеУпаковок.ЕдиницаИзмеренияКод КАК ЕдиницаИзмеренияКод,
| ТаблицаТоваров.Характеристика КАК Характеристика,
| ТаблицаТоваров.Характеристика.НаименованиеПолное КАК ХарактеристикаНаименование,
| ТаблицаТоваров.Серия.Наименование КАК СерияНаименование,
| ДанныеУпаковок.Упаковка КАК Упаковка,
| ДанныеУпаковок.УпаковкаНаименование КАК УпаковкаНаименование,
| ДанныеУпаковок.ВидУпаковки КАК ВидУпаковки,
| ТаблицаТоваров.СтавкаНДС КАК СтавкаНДС,
| ТаблицаТоваров.НомерГТД КАК НомерГТД,
| ТаблицаТоваров.НомерГТД.СтранаПроисхождения КАК СтранаПроисхождения,
| ДанныеУпаковок.Количество КАК Количество,
| ВЫБОР
| КОГДА ДанныеУпаковок.КоличествоМестДробное = (ВЫРАЗИТЬ(ДанныеУпаковок.КоличествоМестДробное КАК ЧИСЛО(12, 0)))
| ТОГДА ДанныеУпаковок.КоличествоМестДробное
| ИНАЧЕ ВЫРАЗИТЬ(ДанныеУпаковок.КоличествоМестДробное + 0.5 КАК ЧИСЛО(12, 0))
| КОНЕЦ КАК КоличествоМест,
| ВЫБОР
| КОГДА ДанныеУпаковок.ЕдиницаИзмерения = ДанныеУпаковок.Упаковка.ЕдиницаИзмерения
| ТОГДА 1
| ИНАЧЕ ДанныеУпаковок.КоличествоВОдномМесте
| КОНЕЦ КАК КоличествоВОдномМесте,
| ВЫБОР
| КОГДА НЕ &ВыводитьБазовыеЕдиницыИзмерения
| ТОГДА ВЫБОР
| КОГДА НЕ ТаблицаТоваров.КоличествоУпаковок = 0
| ТОГДА ТаблицаТоваров.СуммаБезНДС / ТаблицаТоваров.КоличествоУпаковок
| ИНАЧЕ 0
| КОНЕЦ
| ИНАЧЕ ВЫБОР
| КОГДА НЕ ТаблицаТоваров.Количество = 0
| ТОГДА ТаблицаТоваров.СуммаБезНДС / ТаблицаТоваров.Количество
| ИНАЧЕ 0
| КОНЕЦ
| КОНЕЦ КАК Цена,
| ТаблицаТоваров.СуммаБезНДС КАК СуммаБезНДС,
| ТаблицаТоваров.СуммаНДС КАК СуммаНДС,
| ТаблицаТоваров.СуммаБезНДС + ТаблицаТоваров.СуммаНДС КАК СуммаСНДС,
| ТаблицаТоваров.МассаНетто КАК МассаНетто,
| ВЫБОР
| КОГДА ДанныеУпаковок.КоличествоМестДробное = (ВЫРАЗИТЬ(ДанныеУпаковок.КоличествоМестДробное КАК ЧИСЛО(12, 0)))
| ТОГДА ДанныеУпаковок.КоличествоМестДробное
| ИНАЧЕ ВЫРАЗИТЬ(ДанныеУпаковок.КоличествоМестДробное + 0.5 КАК ЧИСЛО(12, 0))
| КОНЕЦ * ЕСТЬNULL(ДанныеУпаковок.МассаБруттоОдногоМеста, 0) - (ВЫБОР
| КОГДА ДанныеУпаковок.КоличествоМестДробное = (ВЫРАЗИТЬ(ДанныеУпаковок.КоличествоМестДробное КАК ЧИСЛО(12, 0)))
| ТОГДА ДанныеУпаковок.КоличествоМестДробное
| ИНАЧЕ ВЫРАЗИТЬ(ДанныеУпаковок.КоличествоМестДробное + 0.5 КАК ЧИСЛО(12, 0))
| КОНЕЦ * ЕСТЬNULL(ДанныеУпаковок.КоличествоВОдномМесте, 1) - ВЫБОР
| КОГДА &ВыводитьБазовыеЕдиницыИзмерения
| ТОГДА ТаблицаТоваров.Количество
| ИНАЧЕ ТаблицаТоваров.КоличествоУпаковок * ЕСТЬNULL(ДанныеУпаковок.КоличествоВОдномМесте, 1)
| КОНЕЦ) * ДанныеУпаковок.МассаНеттоОднойУпаковки / ВЫБОР
| КОГДА &ВыводитьБазовыеЕдиницыИзмерения
| ТОГДА 1
| ИНАЧЕ ЕСТЬNULL(ДанныеУпаковок.КоличествоВОдномМесте, 1)
| КОНЕЦ КАК МассаБрутто,
| ТаблицаТоваров.НомерСтроки КАК НомерСтроки,
| ТаблицаТоваров.НомерСтрокиНаборы КАК НомерСтрокиНаборы,
| ВЫБОР
| КОГДА ТаблицаТоваров.Ссылка.ВернутьМногооборотнуюТару
| И ТаблицаТоваров.Номенклатура.ТипНоменклатуры = ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.МногооборотнаяТара)
| ТОГДА ИСТИНА
| ИНАЧЕ ЛОЖЬ
| КОНЕЦ КАК ЭтоВозвратнаяТара
|ИЗ
| РеализацияТоваровУслугТаблицаТоваров КАК ТаблицаТоваров
| ЛЕВОЕ СОЕДИНЕНИЕ РасчитанныеДанныеУпаковокЕдиницИзмерения КАК ДанныеУпаковок
| ПО ТаблицаТоваров.Ссылка = ДанныеУпаковок.Ссылка
| И ТаблицаТоваров.НомерСтроки = ДанныеУпаковок.НомерСтроки
| И ТаблицаТоваров.Номенклатура = ДанныеУпаковок.Номенклатура
| И ТаблицаТоваров.Характеристика = ДанныеУпаковок.Характеристика
| И ТаблицаТоваров.НомерГТД = ДанныеУпаковок.НомерГТД
|ГДЕ
| (ТаблицаТоваров.ЭтоТовар
| ИЛИ &ВыводитьУслуги)
|
|УПОРЯДОЧИТЬ ПО
| Ссылка,
| НомерСтрокиНаборы,
| ЭтоНабор УБЫВ,
| НомерСтроки
|ИТОГИ
|ПО
| Ссылка";
Запрос.Текст = СтрЗаменить(Запрос.Текст, "&ТекстЗапросаКоэффициентУпаковки",
Справочники.УпаковкиЕдиницыИзмерения.ТекстЗапросаКоэффициентаУпаковки(
"ТаблицаТоваров.Упаковка",
"ТаблицаТоваров.Номенклатура"));
Запрос.Текст = СтрЗаменить(
Запрос.Текст,
"&ТекстЗапросаВесУпаковки",
Справочники.УпаковкиЕдиницыИзмерения.ТекстЗапросаВесУпаковки(
"ТаблицаТоваров.Упаковка",
"ТаблицаТоваров.Номенклатура"));
Запрос.Текст = СтрЗаменить(
Запрос.Текст,
"&ТекстЗапросаВесВидаУпаковки",
Справочники.УпаковкиЕдиницыИзмерения.ТекстЗапросаВесУпаковки(
"КоэффициентыУпаковок.ВидУпаковки",
"ТаблицаТоваров.Номенклатура"));
Запрос.Текст = СтрЗаменить(
Запрос.Текст,
"&ТекстЗапросаЕдиницаИзмерения",
Справочники.УпаковкиЕдиницыИзмерения.ТекстЗапросаЗначениеРеквизитаЕдиницыИзмерения(
"Ссылка",
"ТаблицаТоваров.Упаковка",
"ТаблицаТоваров.Номенклатура"));
Запрос.Текст = СтрЗаменить(
Запрос.Текст,
"&ТекстЗапросаНаименованиеЕдиницыИзмерения1",
Справочники.УпаковкиЕдиницыИзмерения.ТекстЗапросаЗначениеРеквизитаЕдиницыИзмерения(
"Наименование",
"ТаблицаТоваров.Упаковка",
"ТаблицаТоваров.Номенклатура"));
Запрос.Текст = СтрЗаменить(
Запрос.Текст,
"&ТекстЗапросаНаименованиеЕдиницыИзмерения2",
Справочники.УпаковкиЕдиницыИзмерения.ТекстЗапросаЗначениеРеквизитаЕдиницыИзмерения(
"Наименование",
"КоэффициентыУпаковок.ВидУпаковки",
"ТаблицаТоваров.Номенклатура"));
Запрос.Текст = СтрЗаменить(
Запрос.Текст,
"&ТекстЗапросаКодЕдиницыИзмерения",
Справочники.УпаковкиЕдиницыИзмерения.ТекстЗапросаЗначениеРеквизитаЕдиницыИзмерения(
"Код",
"ТаблицаТоваров.Упаковка",
"ТаблицаТоваров.Номенклатура"));
Запрос.УстановитьПараметр("ВыводитьУслуги", ПараметрыПечати.ВыводитьУслуги);
Запрос.УстановитьПараметр("КолонкаКодов", КолонкаКодов);
Запрос.УстановитьПараметр("ЕдиницаИзмеренияВеса", Константы.ЕдиницаИзмеренияВеса.Получить());
Запрос.УстановитьПараметр("ЗаполненаЕдиницаИзмеренияВеса", ЗначениеЗаполнено(Константы.ЕдиницаИзмеренияВеса.Получить()));
Запрос.УстановитьПараметр("ВыводитьБазовыеЕдиницыИзмерения",
Константы.ВыводитьБазовыеЕдиницыИзмерения.Получить() ИЛИ ПараметрыЗаполнения.ВключаяНомераГТД);
МассивРезультатов = Запрос.ВыполнитьПакет();
РезультатПоШапке = МассивРезультатов[0];
РезультатПоТабличнойЧасти = МассивРезультатов[МассивРезультатов.ВГраница()];
СтруктураДанныхДляПечати = Новый Структура("РезультатПоШапке, РезультатПоТабличнойЧасти",
РезультатПоШапке, РезультатПоТабличнойЧасти);
Возврат СтруктураДанныхДляПечати;
КонецФункции
Процедура ПоместитьВременнуюТаблицуКоэффициентыУпаковок(МенеджерВременныхТаблиц, ИмяТаблицыТоваров = "ТаблицаТоваров") Экспорт
Запрос = Новый Запрос;
Запрос.МенеджерВременныхТаблиц = МенеджерВременныхТаблиц;
Запрос.Текст = "
|ВЫБРАТЬ
| ТаблицаТоваров.Номенклатура,
| ТаблицаТоваров.Упаковка КАК Упаковка,
| УпаковкиНоменклатуры.Владелец КАК Владелец,
| МИНИМУМ(ВЫБОР
| КОГДА УпаковкиНоменклатуры.Ссылка ЕСТЬ NULL
| ТОГДА 1
| ИНАЧЕ &ТекстЗапросаКоэффициентУпаковки1
| КОНЕЦ) КАК Коэффициент
|ПОМЕСТИТЬ Упаковки
|ИЗ
| &ИмяТаблицыТоваров КАК ТаблицаТоваров
| ЛЕВОЕ СОЕДИНЕНИЕ Справочник.УпаковкиЕдиницыИзмерения КАК УпаковкиНоменклатуры
| ПО УпаковкиНоменклатуры.Владелец =
| ВЫБОР
| КОГДА ТаблицаТоваров.Упаковка = ЗНАЧЕНИЕ(Справочник.УпаковкиЕдиницыИзмерения.ПустаяСсылка)
| ТОГДА ТаблицаТоваров.Номенклатура
| ИНАЧЕ ТаблицаТоваров.Упаковка.Владелец
| КОНЕЦ
|ГДЕ
| НЕ УпаковкиНоменклатуры.ПометкаУдаления
|
|СГРУППИРОВАТЬ ПО
| ТаблицаТоваров.Номенклатура,
| ТаблицаТоваров.Упаковка,
| УпаковкиНоменклатуры.Владелец
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| Упаковки.Номенклатура,
| Упаковки.Упаковка КАК Упаковка,
| &ТекстЗапросаКоэффициентУпаковки2 КАК КоэффициентУпаковки,
| МИНИМУМ(УпаковкиНоменклатуры.Ссылка) КАК ВложеннаяУпаковка,
| МИНИМУМ(&ТекстЗапросаКоэффициентУпаковки3) КАК КоэффициентВложеннойУпаковки
|ПОМЕСТИТЬ ВложенныеУпаковки
|ИЗ
| Упаковки КАК Упаковки
| ЛЕВОЕ СОЕДИНЕНИЕ Справочник.УпаковкиЕдиницыИзмерения КАК УпаковкиНоменклатуры
| ПО Упаковки.Владелец = УпаковкиНоменклатуры.Владелец
| И Упаковки.Коэффициент = &ТекстЗапросаКоэффициентУпаковки3
|ГДЕ
| УпаковкиНоменклатуры.Родитель = Упаковки.Упаковка
|
|СГРУППИРОВАТЬ ПО
| Упаковки.Номенклатура,
| Упаковки.Упаковка,
| &ТекстЗапросаКоэффициентУпаковки2
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ РАЗЛИЧНЫЕ
| ТаблицаТоваров.Номенклатура,
| ТаблицаТоваров.КоличествоУпаковок,
| ТаблицаТоваров.Количество,
| ТаблицаТоваров.Упаковка,
| ТаблицаТоваров.НомерСтроки,
| ВЫБОР
| КОГДА ВложенныеУпаковки.ВложеннаяУпаковка ЕСТЬ NULL
| ТОГДА ВЫБОР
| КОГДА ТаблицаТоваров.Упаковка = ЗНАЧЕНИЕ(Справочник.УпаковкиЕдиницыИзмерения.ПустаяСсылка)
| ТОГДА 1
| ИНАЧЕ &ТекстЗапросаКоэффициентУпаковки4
| КОНЕЦ
| ИНАЧЕ ВложенныеУпаковки.КоэффициентУпаковки
| КОНЕЦ КАК КоэффициентУпаковки,
| ВЫБОР
| КОГДА ВложенныеУпаковки.ВложеннаяУпаковка ЕСТЬ NULL
| ТОГДА ВЫБОР
| КОГДА ТаблицаТоваров.Упаковка = ЗНАЧЕНИЕ(Справочник.УпаковкиЕдиницыИзмерения.ПустаяСсылка)
| ТОГДА 1
| ИНАЧЕ &ТекстЗапросаКоэффициентУпаковки4
| КОНЕЦ
| ИНАЧЕ ВложенныеУпаковки.КоэффициентВложеннойУпаковки
| КОНЕЦ КАК КоэффициентВложеннойУпаковки,
| ВЫБОР
| КОГДА ВложенныеУпаковки.ВложеннаяУпаковка ЕСТЬ NULL
| ТОГДА ВЫБОР
| КОГДА ТаблицаТоваров.Упаковка = ЗНАЧЕНИЕ(Справочник.УпаковкиЕдиницыИзмерения.ПустаяСсылка)
| ТОГДА ТаблицаТоваров.Номенклатура.ЕдиницаИзмерения
| ИНАЧЕ ТаблицаТоваров.Упаковка
| КОНЕЦ
| ИНАЧЕ ВложенныеУпаковки.ВложеннаяУпаковка
| КОНЕЦ КАК ВидУпаковки,
| ТаблицаТоваров.Ссылка КАК Ссылка
|ПОМЕСТИТЬ КоэффициентыУпаковок
|ИЗ
| &ИмяТаблицыТоваров КАК ТаблицаТоваров
| ЛЕВОЕ СОЕДИНЕНИЕ ВложенныеУпаковки КАК ВложенныеУпаковки
| ПО ТаблицаТоваров.Номенклатура = ВложенныеУпаковки.Номенклатура
| И ТаблицаТоваров.Упаковка = ВложенныеУпаковки.Упаковка
| И ТаблицаТоваров.Упаковка <> ЗНАЧЕНИЕ(Справочник.УпаковкиЕдиницыИзмерения.ПустаяСсылка)
|ИНДЕКСИРОВАТЬ ПО
| Ссылка,
| НомерСтроки
|;
|
|////////////////////////////////////////////////////////////////////////////////
|УНИЧТОЖИТЬ Упаковки
|;
|/////////////////////////////////////////////////////////////////////////////
|УНИЧТОЖИТЬ ВложенныеУпаковки
|";
Запрос.Текст = СтрЗаменить(Запрос.Текст,
"&ТекстЗапросаКоэффициентУпаковки1",
Справочники.УпаковкиЕдиницыИзмерения.ТекстЗапросаКоэффициентаУпаковки(
"УпаковкиНоменклатуры",
"ТаблицаТоваров.Номенклатура"));
Запрос.Текст = СтрЗаменить(Запрос.Текст,
"&ТекстЗапросаКоэффициентУпаковки2",
Справочники.УпаковкиЕдиницыИзмерения.ТекстЗапросаКоэффициентаУпаковки(
"Упаковки.Упаковка",
"Упаковки.Номенклатура"));
Запрос.Текст = СтрЗаменить(Запрос.Текст,
"&ТекстЗапросаКоэффициентУпаковки3",
Справочники.УпаковкиЕдиницыИзмерения.ТекстЗапросаКоэффициентаУпаковки(
"УпаковкиНоменклатуры",
"Упаковки.Номенклатура"));
Запрос.Текст = СтрЗаменить(Запрос.Текст,
"&ТекстЗапросаКоэффициентУпаковки4",
Справочники.УпаковкиЕдиницыИзмерения.ТекстЗапросаКоэффициентаУпаковки(
"ТаблицаТоваров.Упаковка",
"ТаблицаТоваров.Номенклатура"));
Запрос.Текст = СтрЗаменить(Запрос.Текст, "&ИмяТаблицыТоваров", ИмяТаблицыТоваров);
Запрос.Выполнить();
КонецПроцедуры
Процедура СформироватьВременнуюТаблицуОтветственныхЛицДокументов(ОтборДокументы, МенеджерВременныхТаблиц,
ИмяРеквизитаОрганизация = "Организация", РеквизитыОтветственныеЛица = Неопределено,
ИмяТаблицыОтветственныеЛица = "ТаблицаОтветственныеЛица") Экспорт
Если (ТипЗнч(ОтборДокументы) = Тип("Массив") ИЛИ ТипЗнч(ОтборДокументы) = Тип("ФиксированныйМассив"))
И ОтборДокументы.Количество() = 0 Тогда
Возврат;
КонецЕсли;
Если ТипЗнч(ОтборДокументы) <> Тип("Массив") И ТипЗнч(ОтборДокументы) <> Тип("ФиксированныйМассив") Тогда // это ссылка на документ
МассивОбъектов = Новый Массив;
МассивОбъектов.Добавить(ОтборДокументы);
Иначе // это массив ссылок на документы
МассивОбъектов = ОтборДокументы;
КонецЕсли;
МетаданныеДокумента = МассивОбъектов[0].Метаданные(); // ОбъектМетаданныхДокумент -
ИменаПолейПереданыВПараметрах = (РеквизитыОтветственныеЛица <> Неопределено);
Если НЕ ИменаПолейПереданыВПараметрах Тогда
РеквизитыОтветственныеЛица = ОтветственныеЛицаПовтИсп.РеквизитыОтветственныхЛицДокумента(МетаданныеДокумента.Имя);
КонецЕсли;
Если НЕ ЗначениеЗаполнено(РеквизитыОтветственныеЛица) Тогда
Возврат;
КонецЕсли;
ИмяРеквизитаОрганизация = "ДокументДляПечати." + ИмяРеквизитаОрганизация;
Если МенеджерВременныхТаблиц = Неопределено Тогда
МенеджерВременныхТаблиц = Новый МенеджерВременныхТаблиц;
КонецЕсли;
Запрос = Новый Запрос;
Запрос.МенеджерВременныхТаблиц = МенеджерВременныхТаблиц;
Запрос.УстановитьПараметр("МассивОбъектов", МассивОбъектов);
// Получим данные из документов
ШаблонЗапроса =
"ВЫБРАТЬ
| ДокументДляПечати.Ссылка КАК Ссылка,
| НАЧАЛОПЕРИОДА(ДокументДляПечати.Дата, ДЕНЬ) КАК Дата,
| &Организация КАК Организация,
| &ВыбранноеОтветственноеЛицо КАК ВыбранноеОтветственноеЛицо,
| &ОтветственноеЛицо КАК ОтветственноеЛицо
|ПОМЕСТИТЬ ВТДанныеДокументов
|ИЗ
| &ТаблицаДокумент КАК ДокументДляПечати
|ГДЕ
| ДокументДляПечати.Ссылка В(&МассивОбъектов)";
Если МетаданныеДокумента.Реквизиты.Найти("ИсправляемыйДокумент") <> Неопределено Тогда
ШаблонЗапроса = СтрЗаменить(ШаблонЗапроса,
"ДокументДляПечати.Дата",
"ЕСТЬNULL(ДокументДляПечати.ИсправляемыйДокумент.Дата, ДокументДляПечати.Дата)");
КонецЕсли;
ШаблонЗапроса = СтрЗаменить(ШаблонЗапроса, "&ТаблицаДокумент", "Документ." + МетаданныеДокумента.Имя);
Индекс = 0;
Для Каждого КлючИЗначение Из РеквизитыОтветственныеЛица Цикл
Индекс = Индекс + 1;
ТекстЗапроса = ШаблонЗапроса;
Если Индекс > 1 Тогда
ТекстЗапроса = "
|ОБЪЕДИНИТЬ ВСЕ
|" + ТекстЗапроса;
КонецЕсли;
ТекстЗапроса = СтрЗаменить(ТекстЗапроса , "&Организация", ИмяРеквизитаОрганизация);
ТекстЗапроса = СтрЗаменить(ТекстЗапроса , "&ВыбранноеОтветственноеЛицо",
?(ИменаПолейПереданыВПараметрах,
"ЗНАЧЕНИЕ(Справочник.ОтветственныеЛицаОрганизаций.ПустаяСсылка)", // будут выбраны значения по умолчанию
"ДокументДляПечати." + КлючИЗначение.Ключ));
ТекстОтветственноеЛицо = СтрШаблон("ЗНАЧЕНИЕ(%1)", ПолучитьПолноеИмяПредопределенногоЗначения(КлючИЗначение.Значение));
ТекстЗапроса = СтрЗаменить(ТекстЗапроса , "&ОтветственноеЛицо", ТекстОтветственноеЛицо);
Если Индекс <> 1 Тогда
ТекстЗапроса = СтрЗаменить(ТекстЗапроса , "ПОМЕСТИТЬ ВТДанныеДокументов", "");
КонецЕсли;
Запрос.Текст = Запрос.Текст + ТекстЗапроса;
КонецЦикла;
Запрос.Текст = Запрос.Текст + "
|
|ИНДЕКСИРОВАТЬ ПО
| Организация,
| ОтветственноеЛицо,
| Дата
|;
|
|////////////////////////////////////////////////////////////////////////////////
|";
// Заполним пустые поля ответственных лиц значениями по умолчанию
Запрос.Текст = Запрос.Текст +
"ВЫБРАТЬ РАЗЛИЧНЫЕ
| ВТДанныеДокументов.Организация КАК Организация,
| ВТДанныеДокументов.ОтветственноеЛицо КАК ОтветственноеЛицо,
| ВТДанныеДокументов.Дата КАК Дата
|ПОМЕСТИТЬ ВТНезаполненныеОтветственные
|ИЗ
| ВТДанныеДокументов КАК ВТДанныеДокументов
|ГДЕ
| ВТДанныеДокументов.ВыбранноеОтветственноеЛицо = ЗНАЧЕНИЕ(Справочник.ОтветственныеЛицаОрганизаций.ПустаяСсылка)
|
|ИНДЕКСИРОВАТЬ ПО
| Организация,
| ОтветственноеЛицо,
| Дата
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| ВТНезаполненныеОтветственные.Организация КАК Организация,
| ВТНезаполненныеОтветственные.ОтветственноеЛицо КАК ОтветственноеЛицо,
| ВТНезаполненныеОтветственные.Дата КАК Дата,
| ОтветственныеЛицаОрганизаций.Ссылка КАК Ответственный,
| ОтветственныеЛицаОрганизаций.ПравоПодписиПоДоверенности КАК ПравоПодписиПоДоверенности
|ПОМЕСТИТЬ ВТКандидатыВОтветственныеПоУмолчанию
|ИЗ
| ВТНезаполненныеОтветственные КАК ВТНезаполненныеОтветственные
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.ОтветственныеЛицаОрганизаций КАК ОтветственныеЛицаОрганизаций
| ПО ВТНезаполненныеОтветственные.Организация = ОтветственныеЛицаОрганизаций.Владелец
| И ВТНезаполненныеОтветственные.ОтветственноеЛицо = ОтветственныеЛицаОрганизаций.ОтветственноеЛицо
| И ВТНезаполненныеОтветственные.Дата >= ОтветственныеЛицаОрганизаций.ДатаНачала
| И (ВТНезаполненныеОтветственные.Дата <= ОтветственныеЛицаОрганизаций.ДатаОкончания
| ИЛИ ОтветственныеЛицаОрганизаций.ДатаОкончания = ДАТАВРЕМЯ(1, 1, 1))
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ РАЗЛИЧНЫЕ
| ВТКандидатыВОтветственныеПоУмолчанию.Организация,
| ВТКандидатыВОтветственныеПоУмолчанию.ОтветственноеЛицо,
| ВТКандидатыВОтветственныеПоУмолчанию.Дата,
| ВТКандидатыВОтветственныеПоУмолчанию.ОтветственноеЛицоПоУмолчанию
|ПОМЕСТИТЬ ВТОтветственныеПоУмолчанию
|ИЗ
| (ВЫБРАТЬ
| ВТКандидатыВОтветственныеПоУмолчанию.Организация КАК Организация,
| ВТКандидатыВОтветственныеПоУмолчанию.ОтветственноеЛицо КАК ОтветственноеЛицо,
| ВТКандидатыВОтветственныеПоУмолчанию.Дата КАК Дата,
| ВТКандидатыВОтветственныеПоУмолчанию.Ответственный КАК ОтветственноеЛицоПоУмолчанию
| ИЗ
| ВТКандидатыВОтветственныеПоУмолчанию КАК ВТКандидатыВОтветственныеПоУмолчанию
| ГДЕ
| НЕ ВТКандидатыВОтветственныеПоУмолчанию.ПравоПодписиПоДоверенности
|
| ОБЪЕДИНИТЬ ВСЕ
|
| ВЫБРАТЬ
| ВТКандидатыВОтветственныеПоУмолчанию.Организация,
| ВТКандидатыВОтветственныеПоУмолчанию.ОтветственноеЛицо,
| ВТКандидатыВОтветственныеПоУмолчанию.Дата,
| МИНИМУМ(ВТКандидатыВОтветственныеПоУмолчанию.Ответственный)
| ИЗ
| ВТКандидатыВОтветственныеПоУмолчанию КАК ВТКандидатыВОтветственныеПоУмолчанию
|
| СГРУППИРОВАТЬ ПО
| ВТКандидатыВОтветственныеПоУмолчанию.Организация,
| ВТКандидатыВОтветственныеПоУмолчанию.ОтветственноеЛицо,
| ВТКандидатыВОтветственныеПоУмолчанию.Дата
|
| ИМЕЮЩИЕ
| КОЛИЧЕСТВО(РАЗЛИЧНЫЕ ВТКандидатыВОтветственныеПоУмолчанию.Ответственный) = 1
| ) КАК ВТКандидатыВОтветственныеПоУмолчанию
|
|ИНДЕКСИРОВАТЬ ПО
| Организация,
| ОтветственноеЛицо,
| Дата
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| ВТДанныеДокументов.Ссылка,
| ВТДанныеДокументов.Дата,
| ВТДанныеДокументов.ОтветственноеЛицо,
| ВЫБОР
| КОГДА ВТДанныеДокументов.ВыбранноеОтветственноеЛицо = ЗНАЧЕНИЕ(Справочник.ОтветственныеЛицаОрганизаций.ПустаяСсылка)
| ТОГДА ЕСТЬNULL(ВТОтветственныеПоУмолчанию.ОтветственноеЛицоПоУмолчанию, ЗНАЧЕНИЕ(Справочник.ОтветственныеЛицаОрганизаций.ПустаяСсылка))
| ИНАЧЕ ВТДанныеДокументов.ВыбранноеОтветственноеЛицо
| КОНЕЦ КАК ОтветственноеЛицоПоУмолчанию
|ПОМЕСТИТЬ ВТДокументыСОтветственными
|ИЗ
| ВТДанныеДокументов КАК ВТДанныеДокументов
| ЛЕВОЕ СОЕДИНЕНИЕ ВТОтветственныеПоУмолчанию КАК ВТОтветственныеПоУмолчанию
| ПО ВТДанныеДокументов.Организация = ВТОтветственныеПоУмолчанию.Организация
| И ВТДанныеДокументов.ОтветственноеЛицо = ВТОтветственныеПоУмолчанию.ОтветственноеЛицо
| И ВТДанныеДокументов.Дата = ВТОтветственныеПоУмолчанию.Дата
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ РАЗЛИЧНЫЕ
| ВТДокументыСОтветственными.ОтветственноеЛицоПоУмолчанию.ФизическоеЛицо КАК ФизическоеЛицо,
| ВТДокументыСОтветственными.Ссылка,
| МАКСИМУМ(ФИОФизическихЛиц.Период) КАК Период
|ПОМЕСТИТЬ ВТПериодыФИОФизЛиц
|ИЗ
| ВТДокументыСОтветственными КАК ВТДокументыСОтветственными
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ФИОФизическихЛиц КАК ФИОФизическихЛиц
| ПО ВТДокументыСОтветственными.ОтветственноеЛицоПоУмолчанию.ФизическоеЛицо = ФИОФизическихЛиц.ФизическоеЛицо
| И ВТДокументыСОтветственными.Дата >= ФИОФизическихЛиц.Период
|ГДЕ
| ВТДокументыСОтветственными.ОтветственноеЛицоПоУмолчанию.ФизическоеЛицо <> ЗНАЧЕНИЕ(Справочник.ФизическиеЛица.ПустаяСсылка)
| И ВТДокументыСОтветственными.ОтветственноеЛицоПоУмолчанию.ФизическоеЛицо ЕСТЬ НЕ NULL
| И ФИОФизическихЛиц.Период ЕСТЬ НЕ NULL
|
|СГРУППИРОВАТЬ ПО
| ВТДокументыСОтветственными.ОтветственноеЛицоПоУмолчанию.ФизическоеЛицо,
| ВТДокументыСОтветственными.Ссылка
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| ВТПериодыФИОФизЛиц.ФизическоеЛицо,
| ВТПериодыФИОФизЛиц.Ссылка,
| ВЫРАЗИТЬ(ФИОФизическихЛиц.Фамилия + ВЫБОР
| КОГДА ФИОФизическихЛиц.Имя = """"
| ТОГДА """"
| ИНАЧЕ "" "" + ПОДСТРОКА(ФИОФизическихЛиц.Имя, 1, 1) + "".""
| КОНЕЦ + ВЫБОР
| КОГДА ФИОФизическихЛиц.Отчество = """"
| ТОГДА """"
| ИНАЧЕ ПОДСТРОКА(ФИОФизическихЛиц.Отчество, 1, 1) + "".""
| КОНЕЦ КАК СТРОКА(50)) КАК ФИО
|ПОМЕСТИТЬ ВТФИОФизЛиц
|ИЗ
| ВТПериодыФИОФизЛиц КАК ВТПериодыФИОФизЛиц
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ФИОФизическихЛиц КАК ФИОФизическихЛиц
| ПО ВТПериодыФИОФизЛиц.ФизическоеЛицо = ФИОФизическихЛиц.ФизическоеЛицо
| И ВТПериодыФИОФизЛиц.Период = ФИОФизическихЛиц.Период
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| ВТДокументыСОтветственными.Ссылка,
| ВТДокументыСОтветственными.ОтветственноеЛицо,
| ВТДокументыСОтветственными.ОтветственноеЛицоПоУмолчанию,
| ЕСТЬNULL(ВТФИОФизЛиц.ФИО, """") КАК ФИО
|ПОМЕСТИТЬ ВТДокументыСФИООтветственных
|ИЗ
| ВТДокументыСОтветственными КАК ВТДокументыСОтветственными
| ЛЕВОЕ СОЕДИНЕНИЕ ВТФИОФизЛиц КАК ВТФИОФизЛиц
| ПО ВТДокументыСОтветственными.ОтветственноеЛицоПоУмолчанию.ФизическоеЛицо = ВТФИОФизЛиц.ФизическоеЛицо
| И ВТДокументыСОтветственными.Ссылка = ВТФИОФизЛиц.Ссылка";
Запрос.Текст = Запрос.Текст + "
|;
|
|////////////////////////////////////////////////////////////////////////////////
|";
// Свернем результат - поместим всех ответственных в одну запись выборки запроса
ШаблонЗапроса = "
|ВЫБРАТЬ
| &ВыборкаЗапроса
|ПОМЕСТИТЬ ВТДокументыСФИООтветственныхСвернутая
|ИЗ
| &ВложенныйЗапрос КАК ВТДокументыСФИООтветственных
|
|СГРУППИРОВАТЬ ПО
| ВТДокументыСФИООтветственных.Ссылка
|";
ШаблонВложенногоЗапроса = "
|ВЫБРАТЬ
| &ВыборкаВложенногоЗапроса
|ИЗ
| ВТДокументыСФИООтветственных КАК ВТДокументыСФИООтветственных
|ГДЕ
| ВТДокументыСФИООтветственных.ОтветственноеЛицо = &ОтветственноеЛицо
|";
Индекс = 0;
СтрокаВыборкаЗапроса = "ВТДокументыСФИООтветственных.Ссылка";
ТекстВложенногоЗапроса = "";
Для Каждого КлючИЗначение Из РеквизитыОтветственныеЛица Цикл
Индекс = Индекс + 1;
СтрокаВыборкаВложенногоЗапроса = "ВТДокументыСФИООтветственных.Ссылка";
Для Каждого КлючИЗначение2 Из РеквизитыОтветственныеЛица Цикл
Если КлючИЗначение.Ключ = КлючИЗначение2.Ключ Тогда
СтрокаВыборкаВложенногоЗапроса = СтрокаВыборкаВложенногоЗапроса + ",
| ВТДокументыСФИООтветственных.ОтветственноеЛицоПоУмолчанию КАК " + КлючИЗначение2.Ключ + ",
| ВТДокументыСФИООтветственных.ФИО КАК " + КлючИЗначение2.Ключ + "ФИО";
Иначе
СтрокаВыборкаВложенногоЗапроса = СтрокаВыборкаВложенногоЗапроса + ",
| ЗНАЧЕНИЕ(Справочник.ОтветственныеЛицаОрганизаций.ПустаяСсылка) КАК " + КлючИЗначение2.Ключ + ",
| """" КАК " + КлючИЗначение2.Ключ + "ФИО";
КонецЕсли;
КонецЦикла;
Если Индекс > 1 Тогда
ТекстВложенногоЗапроса = ТекстВложенногоЗапроса + "
|ОБЪЕДИНИТЬ ВСЕ
|";
КонецЕсли;
ТекстВложенногоЗапроса = ТекстВложенногоЗапроса + ШаблонВложенногоЗапроса;
ТекстВложенногоЗапроса = СтрЗаменить(ТекстВложенногоЗапроса , "&ВыборкаВложенногоЗапроса", СтрокаВыборкаВложенногоЗапроса);
ТекстОтвественноеЛицо = СтрШаблон("ЗНАЧЕНИЕ(%1)", ПолучитьПолноеИмяПредопределенногоЗначения(КлючИЗначение.Значение));
ТекстВложенногоЗапроса = СтрЗаменить(ТекстВложенногоЗапроса , "&ОтветственноеЛицо", ТекстОтвественноеЛицо);
СтрокаВыборкаЗапроса = СтрокаВыборкаЗапроса + ",
| МАКСИМУМ(ВТДокументыСФИООтветственных." + КлючИЗначение.Ключ + ") КАК " + КлючИЗначение.Ключ + ",
| МАКСИМУМ(ВТДокументыСФИООтветственных." + КлючИЗначение.Ключ + "ФИО) КАК " + КлючИЗначение.Ключ + "ФИО";
КонецЦикла;
ТекстЗапроса = СтрЗаменить(ШаблонЗапроса , "&ВыборкаЗапроса", СтрокаВыборкаЗапроса);
ТекстЗапроса = СтрЗаменить(ТекстЗапроса , "&ВложенныйЗапрос", "(" + ТекстВложенногоЗапроса + ")");
Запрос.Текст = Запрос.Текст + ТекстЗапроса;
// Расшифруем данные - выберем нужные реквизиты ответственных лиц в отдельные поля
ШаблонЗапроса = "
|;
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| &Выборка
|ПОМЕСТИТЬ ИмяВременнойТаблицы
|ИЗ
| ВТДокументыСФИООтветственныхСвернутая КАК ВТСвернутая
|";
ШаблонСтрокиВыборки = ",
| ВТСвернутая.%Реквизит% КАК %Реквизит%,
| ЕСТЬNULL(ВТСвернутая.%Реквизит%.ФизическоеЛицо, ЗНАЧЕНИЕ(Справочник.ФизическиеЛица.ПустаяСсылка)) КАК %Реквизит%ФизическоеЛицо,
| ВТСвернутая.%Реквизит%ФИО
| + ВЫБОР
| КОГДА ВТСвернутая.%Реквизит%.ОснованиеПраваПодписи ЕСТь NULL
| ИЛИ ВТСвернутая.%Реквизит%.ОснованиеПраваПодписи = """"
| ТОГДА """"
| ИНАЧЕ "", "" + ВТСвернутая.%Реквизит%.ОснованиеПраваПодписи
| КОНЕЦ КАК %Реквизит%Наименование,
| ЕСТЬNULL(ВТСвернутая.%Реквизит%.Должность, """") КАК %Реквизит%Должность,
| ЕСТЬNULL(ВТСвернутая.%Реквизит%.ОснованиеПраваПодписи, """") КАК %Реквизит%ОснованиеПраваПодписи";
СтрокаВыборка = "ВТСвернутая.Ссылка КАК Ссылка";
Для Каждого КлючИЗначение Из РеквизитыОтветственныеЛица Цикл
СтрокаВыборка = СтрокаВыборка + СтрЗаменить(ШаблонСтрокиВыборки , "%Реквизит%", КлючИЗначение.Ключ);
КонецЦикла;
ТекстЗапроса = СтрЗаменить(ШаблонЗапроса, "&Выборка", СтрокаВыборка);
ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "ИмяВременнойТаблицы", ИмяТаблицыОтветственныеЛица);
// Удалим ненужные временные таблицы
Запрос.Текст = Запрос.Текст + ТекстЗапроса + "
|;
|УНИЧТОЖИТЬ ВТДанныеДокументов
|;
|УНИЧТОЖИТЬ ВТНезаполненныеОтветственные
|;
|УНИЧТОЖИТЬ ВТОтветственныеПоУмолчанию
|;
|УНИЧТОЖИТЬ ВТКандидатыВОтветственныеПоУмолчанию
|;
|УНИЧТОЖИТЬ ВТДокументыСОтветственными
|;
|УНИЧТОЖИТЬ ВТПериодыФИОФизЛиц
|;
|УНИЧТОЖИТЬ ВТФИОФизЛиц
|;
|УНИЧТОЖИТЬ ВТДокументыСФИООтветственных
|;
|УНИЧТОЖИТЬ ВТДокументыСФИООтветственныхСвернутая
|";
Запрос.Выполнить();
КонецПроцедуры
Показать
Функция ТекстЗапросаВесУпаковки
Функция ТекстЗапросаВесУпаковки(ИсточникУпаковки, ИсточникНоменклатуры, ВесУпаковкиВЕдиницеКонстанты = Истина) Экспорт
Если ИсточникНоменклатуры = Неопределено Тогда
ТекстЗапроса = "ВЫРАЗИТЬ((ЕСТЬNULL(ТаблицаТовары.Упаковка.Вес, 0) * (ЕСТЬNULL(ТаблицаТовары.Упаковка.ВесЕдиницаИзмерения.Числитель, 0) / ЕСТЬNULL(ТаблицаТовары.Упаковка.ВесЕдиницаИзмерения.Знаменатель,1)) / &КоличествоКгВЕдиницеИзмеренияВеса) КАК Число(15,7))";
Иначе
ТекстЗапроса =
"ВЫРАЗИТЬ(ВЫБОР
| КОГДА ТаблицаТовары.Упаковка.ТипИзмеряемойВеличины = ЗНАЧЕНИЕ(Перечисление.ТипыИзмеряемыхВеличин.Вес)
| И ТаблицаТовары.Номенклатура.ВесИспользовать
| И ЕСТЬNULL(ТаблицаТовары.Упаковка.Знаменатель, 0) <> 0
| ТОГДА ВЫРАЗИТЬ(ТаблицаТовары.Упаковка.Числитель / ТаблицаТовары.Упаковка.Знаменатель КАК ЧИСЛО(15, 7))
| КОГДА ТаблицаТовары.Упаковка.ТипИзмеряемойВеличины = ЗНАЧЕНИЕ(Перечисление.ТипыИзмеряемыхВеличин.Объем)
| И ТаблицаТовары.Номенклатура.ВесИспользовать
| И ЕСТЬNULL(ТаблицаТовары.Упаковка.Знаменатель, 0) <> 0
| И ЕСТЬNULL(ТаблицаТовары.Номенклатура.ОбъемЕдиницаИзмерения.Числитель, 0) <> 0
| И ЕСТЬNULL(ТаблицаТовары.Номенклатура.ОбъемЕдиницаИзмерения.Знаменатель, 0) <> 0
| И ЕСТЬNULL(ТаблицаТовары.Номенклатура.ОбъемЧислитель, 0) <> 0
| И ЕСТЬNULL(ТаблицаТовары.Номенклатура.ОбъемЗнаменатель, 0) <> 0
| И ЕСТЬNULL(ТаблицаТовары.Номенклатура.ВесЗнаменатель, 0) <> 0
| И ЕСТЬNULL(ТаблицаТовары.Номенклатура.ВесЕдиницаИзмерения.Знаменатель, 0) <> 0
| ТОГДА ВЫРАЗИТЬ((ВЫРАЗИТЬ((ВЫРАЗИТЬ(ТаблицаТовары.Упаковка.Числитель / ТаблицаТовары.Упаковка.Знаменатель КАК ЧИСЛО(15, 7))) / (ВЫРАЗИТЬ(ТаблицаТовары.Номенклатура.ОбъемЕдиницаИзмерения.Числитель / ТаблицаТовары.Номенклатура.ОбъемЕдиницаИзмерения.Знаменатель КАК ЧИСЛО(15, 7))) КАК ЧИСЛО(15, 7))) / (ВЫРАЗИТЬ(ТаблицаТовары.Номенклатура.ОбъемЧислитель / ТаблицаТовары.Номенклатура.ОбъемЗнаменатель КАК ЧИСЛО(15, 7))) * (ТаблицаТовары.Номенклатура.ВесЧислитель / ТаблицаТовары.Номенклатура.ВесЗнаменатель) * (ТаблицаТовары.Номенклатура.ВесЕдиницаИзмерения.Числитель / ТаблицаТовары.Номенклатура.ВесЕдиницаИзмерения.Знаменатель) КАК ЧИСЛО(15, 7))
| КОГДА ТаблицаТовары.Упаковка.ТипИзмеряемойВеличины = ЗНАЧЕНИЕ(Перечисление.ТипыИзмеряемыхВеличин.Площадь)
| И ТаблицаТовары.Номенклатура.ВесИспользовать
| И ЕСТЬNULL(ТаблицаТовары.Упаковка.Знаменатель, 0) <> 0
| И ЕСТЬNULL(ТаблицаТовары.Номенклатура.ПлощадьЕдиницаИзмерения.Числитель, 0) <> 0
| И ЕСТЬNULL(ТаблицаТовары.Номенклатура.ПлощадьЕдиницаИзмерения.Знаменатель, 0) <> 0
| И ЕСТЬNULL(ТаблицаТовары.Номенклатура.ПлощадьЧислитель, 0) <> 0
| И ЕСТЬNULL(ТаблицаТовары.Номенклатура.ПлощадьЗнаменатель, 0) <> 0
| И ЕСТЬNULL(ТаблицаТовары.Номенклатура.ВесЗнаменатель, 0) <> 0
| И ЕСТЬNULL(ТаблицаТовары.Номенклатура.ВесЕдиницаИзмерения.Знаменатель, 0) <> 0
| ТОГДА ВЫРАЗИТЬ((ВЫРАЗИТЬ((ВЫРАЗИТЬ(ТаблицаТовары.Упаковка.Числитель / ТаблицаТовары.Упаковка.Знаменатель КАК ЧИСЛО(15, 7))) / (ВЫРАЗИТЬ(ТаблицаТовары.Номенклатура.ПлощадьЕдиницаИзмерения.Числитель / ТаблицаТовары.Номенклатура.ПлощадьЕдиницаИзмерения.Знаменатель КАК ЧИСЛО(15, 7))) КАК ЧИСЛО(15, 7))) / (ВЫРАЗИТЬ(ТаблицаТовары.Номенклатура.ПлощадьЧислитель / ТаблицаТовары.Номенклатура.ПлощадьЗнаменатель КАК ЧИСЛО(15, 7))) * (ТаблицаТовары.Номенклатура.ВесЧислитель / ТаблицаТовары.Номенклатура.ВесЗнаменатель) * (ТаблицаТовары.Номенклатура.ВесЕдиницаИзмерения.Числитель / ТаблицаТовары.Номенклатура.ВесЕдиницаИзмерения.Знаменатель) КАК ЧИСЛО(15, 7))
| КОГДА ТаблицаТовары.Упаковка.ТипИзмеряемойВеличины = ЗНАЧЕНИЕ(Перечисление.ТипыИзмеряемыхВеличин.Длина)
| И ТаблицаТовары.Номенклатура.ВесИспользовать
| И ЕСТЬNULL(ТаблицаТовары.Упаковка.Знаменатель, 0) <> 0
| И ЕСТЬNULL(ТаблицаТовары.Номенклатура.ДлинаЕдиницаИзмерения.Числитель, 0) <> 0
| И ЕСТЬNULL(ТаблицаТовары.Номенклатура.ДлинаЕдиницаИзмерения.Знаменатель, 0) <> 0
| И ЕСТЬNULL(ТаблицаТовары.Номенклатура.ДлинаЧислитель, 0) <> 0
| И ЕСТЬNULL(ТаблицаТовары.Номенклатура.ДлинаЗнаменатель, 0) <> 0
| И ЕСТЬNULL(ТаблицаТовары.Номенклатура.ВесЗнаменатель, 0) <> 0
| И ЕСТЬNULL(ТаблицаТовары.Номенклатура.ВесЕдиницаИзмерения.Знаменатель, 0) <> 0
| ТОГДА ВЫРАЗИТЬ((ВЫРАЗИТЬ((ВЫРАЗИТЬ(ТаблицаТовары.Упаковка.Числитель / ТаблицаТовары.Упаковка.Знаменатель КАК ЧИСЛО(15, 7))) / (ВЫРАЗИТЬ(ТаблицаТовары.Номенклатура.ДлинаЕдиницаИзмерения.Числитель / ТаблицаТовары.Номенклатура.ДлинаЕдиницаИзмерения.Знаменатель КАК ЧИСЛО(15, 7))) КАК ЧИСЛО(15, 7))) / (ВЫРАЗИТЬ(ТаблицаТовары.Номенклатура.ДлинаЧислитель / ТаблицаТовары.Номенклатура.ДлинаЗнаменатель КАК ЧИСЛО(15, 7))) * (ТаблицаТовары.Номенклатура.ВесЧислитель / ТаблицаТовары.Номенклатура.ВесЗнаменатель) * (ТаблицаТовары.Номенклатура.ВесЕдиницаИзмерения.Числитель / ТаблицаТовары.Номенклатура.ВесЕдиницаИзмерения.Знаменатель) КАК ЧИСЛО(15, 7))
| КОГДА ТаблицаТовары.Упаковка.ТипИзмеряемойВеличины = ЗНАЧЕНИЕ(Перечисление.ТипыИзмеряемыхВеличин.Упаковка)
| И ЕСТЬNULL(ТаблицаТовары.Упаковка.ВесЕдиницаИзмерения.Знаменатель, 0) <> 0
| ТОГДА ВЫРАЗИТЬ(ТаблицаТовары.Упаковка.Вес * ТаблицаТовары.Упаковка.ВесЕдиницаИзмерения.Числитель / ТаблицаТовары.Упаковка.ВесЕдиницаИзмерения.Знаменатель КАК ЧИСЛО(15, 7))
| КОГДА (ТаблицаТовары.Упаковка.ТипИзмеряемойВеличины = ЗНАЧЕНИЕ(Перечисление.ТипыИзмеряемыхВеличин.КоличествоШтук)
| ИЛИ ТаблицаТовары.Упаковка.ТипИзмеряемойВеличины = ЗНАЧЕНИЕ(Перечисление.ТипыИзмеряемыхВеличин.ПустаяСсылка)
| ИЛИ ЕСТЬNULL(ТаблицаТовары.Упаковка.Ссылка, ЗНАЧЕНИЕ(Справочник.УпаковкиЕдиницыИзмерения.ПустаяСсылка)) = ЗНАЧЕНИЕ(Справочник.УпаковкиЕдиницыИзмерения.ПустаяСсылка))
| И ТаблицаТовары.Номенклатура.ВесИспользовать
| И ЕСТЬNULL(ТаблицаТовары.Номенклатура.ВесЗнаменатель, 0) <> 0
| И ЕСТЬNULL(ТаблицаТовары.Номенклатура.ВесЕдиницаИзмерения.Знаменатель, 0) <> 0
| ТОГДА ВЫРАЗИТЬ(ТаблицаТовары.Номенклатура.ВесЧислитель / ТаблицаТовары.Номенклатура.ВесЗнаменатель * (ТаблицаТовары.Номенклатура.ВесЕдиницаИзмерения.Числитель / ТаблицаТовары.Номенклатура.ВесЕдиницаИзмерения.Знаменатель) КАК ЧИСЛО(15, 7))
| ИНАЧЕ 0
| КОНЕЦ / (ВЫРАЗИТЬ(&КоличествоКгВЕдиницеИзмеренияВеса КАК ЧИСЛО(15, 7))) КАК ЧИСЛО(15, 7))";
ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "ТаблицаТовары.Номенклатура", ИсточникНоменклатуры);
КонецЕсли;
Если ВесУпаковкиВЕдиницеКонстанты Тогда
ЕдиницаИзмеренияВеса = Константы.ЕдиницаИзмеренияВеса.Получить();
Если Не ЗначениеЗаполнено(ЕдиницаИзмеренияВеса) Тогда
ВызватьИсключение НСтр("ru = 'Не задано значение константы ""Единица измерения веса"". Обратитесь к администратору.'");
КонецЕсли;
СтруктураРезультат = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(ЕдиницаИзмеренияВеса, "Числитель, Знаменатель");
КоличествоКгВЕдиницеИзмеренияВеса = СтруктураРезультат.Числитель / СтруктураРезультат.Знаменатель;
Иначе
КоличествоКгВЕдиницеИзмеренияВеса = 1;
КонецЕсли;
ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "&КоличествоКгВЕдиницеИзмеренияВеса", Формат(КоличествоКгВЕдиницеИзмеренияВеса, "ЧРД=.; ЧГ=0"));
ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "ТаблицаТовары.Упаковка", ИсточникУпаковки);
Возврат ТекстЗапроса;
КонецФункции
Показать
После изучения запросов из этой функции, убедился что вся информация выводится из документа, а не из какого-либо регистра и, что нет соединений и условий препятствующих выводу из таблицы Товары.
Прошу помощи с этой задачей. Кто встречал такую проблему, подскажите пожалуйста решение?
#Удаление
Если РежимЗаписи = РежимЗаписиДокумента.Проведение Тогда
#КонецУдаления
#Вставка
Если РежимЗаписи = РежимЗаписиДокумента.Проведение
ИЛИ РежимЗаписи = РежимЗаписиДокумента.Запись Тогда
#КонецВставки
Ибо кто-его знает, где еще используется таблица "ВидыЗапасов"
(1) В ноябре делал точно такое же задание. В расширении без ВПФ. Тоже отключил проверку на проведение (очистил массив непроведенных), сначала заполнил ТЧ ВидыЗапасов, а после срабатывания запроса и записи результата , очистил эту ТЧ
Как - на скрине, чтобы долго не писать.
&НаСервере
Процедура ут_ПриСозданииНаСервереПосле(Отказ, СтандартнаяОбработка)
ТЗ = ПолучитьИзВременногоХранилища(ЭтотОбъект.ПараметрыПодключаемыхКоманд.АдресТаблицыКоманд);
Для каждого стр из ТЗ.НайтиСтроки(Новый Структура("Вид,РежимЗаписи","Печать","Проводить")) Цикл
Стр.РежимЗаписи="Записывать";
Конеццикла;
ПоместитьВоВременноеХранилище (ТЗ,ЭтотОбъект.ПараметрыПодключаемыхКоманд.АдресТаблицыКоманд);
КонецПроцедуры
Показать
И самое главное! Все равно номенклатура (тип - товар) из таблицы Товары не попадает в печатную форму.
И самое главное! Все равно номенклатура (тип - товар) из таблицы Товары не попадает в печатную форму.
Самое главное - читать преподнесенные вам на блюдечке ссылки полностью:
Суть проблемы заключается в том, что данные для печати Торг-12 собираются не из ТЧ Товары, а из ТЧ ВидыЗапасов, а это табличная часть заполняется только при проведении, а при отмене проведения зачищается.
Как будете решать эту проблему - зависит от ваших способностей.
Ну сделайте свою внешнюю печатную форму.
Алгоритм сделайте свой, чтобы не было таких проблем.
В параметрах регистрации укажите, что она собой заменяет типовую команду печати.
(4)Это крайний вариант. Сначала нужно попробовать разобраться с типовым решением и сделать расширение, которое позволит печатать без проверки на проведение.
(5) БСП 3.1.9
Настройка необходимости проведения документов перед формированием внешних печатных форм
По умолчанию перед формированием любой внешней печатной формы проверяется проведенность печатаемых объектов-документов, и если найдется хотя бы один непроведенный документ, то пользователю будет выдано соответствующее предложение его провести. Если пользователь отказывается это делать, печать не выполняется.
Такую проверку можно отключить при внедрении подсистемы. Для этого необходимо в общем модуле ДополнительныеОтчетыИОбработкиКлиентПереопределяемый в процедуре ПередВыполнениемКомандыПечатиВнешнейПечатнойФормы установить параметру СтандартнаяОбработка значение Ложь:
(1) В ноябре делал точно такое же задание. В расширении без ВПФ. Тоже отключил проверку на проведение (очистил массив непроведенных), сначала заполнил ТЧ ВидыЗапасов, а после срабатывания запроса и записи результата , очистил эту ТЧ
Как - на скрине, чтобы долго не писать.
#Удаление
Если РежимЗаписи = РежимЗаписиДокумента.Проведение Тогда
#КонецУдаления
#Вставка
Если РежимЗаписи = РежимЗаписиДокумента.Проведение
ИЛИ РежимЗаписи = РежимЗаписиДокумента.Запись Тогда
#КонецВставки
Ибо кто-его знает, где еще используется таблица "ВидыЗапасов"
(14) Окей, на печать вывести получилось. Но только список товаров пуст, потому как данные берутся из ВидаЗапасов. В старых версиях мб проканает, сейчас уже нужно еще что то придумывать
(17) Самое простое и быстрое "решение" провести, напечатать, распровести. Если хочется без проведения вообще, то пишите расширение на для того что бы печатная форма брала данные из другого места данные, но нужно понимать что рано или поздно оно перестанет работать потому что 1С что то поменяют)) Самый верный вариант поискать готовое решение в виде внешней печатной формы. Можно вытащить типовую печатную, во внешнюю и уже ее ковырять...