Автор: 1c_lam 17.01.19, 12:11
1С:Предприятие 8.3 (8.3.12.1616)
"Управление торговым предприятием для Украины", редакция 1.2. (1.2.48.1)
Доброго времени суток, Господа.
На данный момент есть необходимость создания внешней печатной формы "Приходный ордер. Типовая форма № М-4";
Мною реализовано изящно, но скомканное исполнение и ОДНА ПРОБЛЕМКА!
А именно, не представляю как заполнять КонНоменклатуры, согласно Классификатору единиц измерения. Код прикрепляю.
Просьба, подскажите как заполнить "Эти поля", всю голову сломал
КодФункция Печать() Экспорт
Макет = ПолучитьМакет("ф4");
//КодЯзыкаПечать = Локализация.ПолучитьЯзыкФормированияПечатныхФорм(УправлениеПользователями.ПолучитьЗначениеПоУмолчанию(глЗначениеПеременной("глТекущийПользователь"), "РежимФормированияПечатныхФорм"));
//Макет.КодЯзыкаМакета = КодЯзыкаПечать;
ТабДок = Новый ТабличныйДокумент;
ТабДок.АвтоМасштаб = Истина;
ТабДок.ТолькоПросмотр = Истина;
Макет = ПолучитьМакет("ф4");
ОбластьШапка = Макет.ПолучитьОбласть("Шапка1");
ОбластьШапка.Параметры.НомерДокумента = СсылкаНаОбъект.Номер;
ОбластьШапка.Параметры.ДатаДокумента = Формат(СсылкаНаОбъект.Дата, "ДФ=dd.MM.yyyy; ДЛФ=");
ОбластьСтрока = Макет.ПолучитьОбласть("Строка1");
ОбластьСтрока.Параметры.НомДок = СсылкаНаОбъект.Номер;
ОбластьСтрока.Параметры.Дата = Формат(СсылкаНаОбъект.Дата, "ДФ=dd.MM.yyyy; ДЛФ=");
ОбластьСтрока.Параметры.Склад = СсылкаНаОбъект.СкладОрдер;
ОбластьСтрока.Параметры.НаимПост = СсылкаНаОбъект.Контрагент;
ОбластьСч_ТЧ = Макет.ПолучитьОбласть("Сч_ТЧ");
ОбластьШапка2 = Макет.ПолучитьОбласть("ДопШап");
ОбластьПодвал = Макет.ПолучитьОбласть("Подвал");
ОбластьСтрока2 = Макет.ПолучитьОбласть("Строка2");
//{{КОНСТРУКТОР_ЗАПРОСА_С_ОБРАБОТКОЙ_РЕЗУЛЬТАТА
// Данный фрагмент построен конструктором.
// При повторном использовании конструктора, внесенные вручную изменения будут утеряны!!!
//1-й ВАРиАнТ
Запрос = Новый Запрос;
Запрос.УстановитьПараметр("ТекущийДокумент", СсылкаНаОбъект);
Запрос.Текст = "ВЫБРАТЬ
| ПоступлениеТоваровУслугТовары.Номенклатура,
| ПоступлениеТоваровУслугТовары.Номенклатура.Код,
| ПоступлениеТоваровУслугТовары.ЕдиницаИзмерения,
| ПоступлениеТоваровУслугТовары.ЕдиницаИзмерения.Код,
| ПоступлениеТоваровУслугТовары.Количество,
| ПоступлениеТоваровУслугТовары.Цена,
| ПоступлениеТоваровУслугТовары.Сумма,
| ПоступлениеТоваровУслугТовары.СчетУчетаБУ
|ИЗ
| Документ.ПоступлениеТоваровУслуг.Товары КАК ПоступлениеТоваровУслугТовары
|ГДЕ
| ПоступлениеТоваровУслугТовары.Ссылка = &ТекущийДокумент";
РезультатЗапроса = Запрос.Выполнить();
ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
// //получаем код єтой ебаной Ед.Изм
// ЗапросКод = Новый Запрос;
// ЗапросКод.УстановитьПараметр("ТекущийДокумент", СсылкаНаОбъект);
// Запрос.УстановитьПараметр("Ссылка", СсылкаНаОбъект);
// ЗапросКод.Текст =
// "ВЫБРАТЬ
// | КлассификаторЕдиницИзмерения.Код
// |ИЗ
// | Справочник.КлассификаторЕдиницИзмерения КАК КлассификаторЕдиницИзмерения
// |ГДЕ
// | КлассификаторЕдиницИзмерения.Код = &Ссылка";
// РезультатЗапросаКод = ЗапросКод.Выполнить();
// Выборка = РезультатЗапросаКод.Выбрать();
// Пока Выборка.Следующий() Цикл
// ОбластьСтрока2.Параметры.КодН = Выборка.Код;
// //ТабДок.Присоединить(ОбластьСтрока2);
//КонецЦикла;
//}}КОНСТРУКТОР_ЗАПРОСА_С_ОБРАБОТКОЙ_РЕЗУЛЬТАТА
ТабДок.Вывести(ОбластьШапка);
ТабДок.Вывести(ОбластьСтрока);
Запрос1 = Новый Запрос;
Запрос1.УстановитьПараметр("ТекущийДокумент", СсылкаНаОбъект);
Запрос1.Текст =
"ВЫБРАТЬ ПЕРВЫЕ 1
| ПоступлениеТоваровУслугТовары.СчетУчетаБУ
|ИЗ
| Документ.ПоступлениеТоваровУслуг.Товары КАК ПоступлениеТоваровУслугТовары
|ГДЕ
| ПоступлениеТоваровУслугТовары.Ссылка = &ТекущийДокумент";
РезультатЗапроса1 = Запрос1.Выполнить();
ВыборкаДетальныеЗаписи1 = РезультатЗапроса1.Выбрать();
Пока ВыборкаДетальныеЗаписи1.Следующий() Цикл
ОбластьСч_ТЧ.Параметры.Счет = ВыборкаДетальныеЗаписи1.СчетУчетаБУ;
ТабДок.Присоединить(ОбластьСч_ТЧ);
КонецЦикла;
ТабДок.Вывести(ОбластьШапка2);
Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
ОбластьСтрока2 = Макет.ПолучитьОбласть("Строка2");
ОбластьСтрока2.Параметры.Наименование = ВыборкаДетальныеЗаписи.Номенклатура;
ОбластьСтрока2.Параметры.Номерноменклатуры = ВыборкаДетальныеЗаписи.НоменклатураКод;
ОбластьСтрока2.Параметры.КодН = ЕдиницаИзмерения.ЕдиницаПоКлассификатору.Код;
ОбластьСтрока2.Параметры.ЕдИзм = ВыборкаДетальныеЗаписи.ЕдиницаИзмерения;
ОбластьСтрока2.Параметры.КолвоДок = ВыборкаДетальныеЗаписи.Количество;
ОбластьСтрока2.Параметры.КолвоДок1 = ВыборкаДетальныеЗаписи.Количество;
ОбластьСтрока2.Параметры.Цена = ВыборкаДетальныеЗаписи.Цена;
ОбластьСтрока2.Параметры.Сумма = ВыборкаДетальныеЗаписи.Сумма;
ТабДок.Вывести(ОбластьСтрока2);
КонецЦикла;
ОбластьПробел = Макет.ПолучитьОбласть("Пробел");
ОбластьПробел.Параметры.СумДок = СсылкаНаОбъект.СуммаДокумента;
ТабДок.Вывести(ОбластьПробел);
ТабДок.Вывести(ОбластьПодвал);
Возврат ТабДок;
КонецФункции
! |
| http://pro1c.org.ua/index.php?act=announce&id=2: 8
|
Автор: awp 17.01.19, 12:17
1c_lam @ Сегодня, 12:11
,
Справочник "КлассификаторЕдиницИзмерения" - Макет "КлассификаторЕдиницИзмерения"
Автор: sava1 17.01.19, 12:56
Цитата(1c_lam @ 17.01.19, 12:11)
Мною реализовано изящно,
Мне бы кто так сказал ....
Автор: 1c_lam 17.01.19, 13:12
awp @ Сегодня, 12:17
,
Спасибо, обратите внимание на блок закоментированный, то я увидел где взять тот самый код, но я не представляю как его "вставить в мой макет, в мою форму. даже запрос организовал, но, он тянет все коды из классификатора, а заполняет каждые поля по товару одним (подозреваю первым) кодом. в Этом и загвоздочка
Автор: awp 17.01.19, 13:30
1c_lam @ Сегодня, 13:12
,
Меняем
ПоступлениеТоваровУслугТовары.ЕдиницаИзмерения.Код,
НА
ПоступлениеТоваровУслугТовары.ЕдиницаИзмерения.ЕдиницаПоКлассификатору
Мною реализовано не изящно, но думаю что то что нужно