Реклама на этом месте
Форум 1С
Форум 1С
Программистам. Бухгалтерам. Администраторам. Пользователям
Задай вопрос - получи решение проблемы. Без троллинга и флуда.
17 Дек 2017, 22:41
МультиВход
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Не получили письмо с кодом активации?
 
collapse

Автор Тема: унифицированная форма ИНВ8а  (Прочитано 2296 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн dadids

  • *
  • Сообщений: 1
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2014-01-28
  • Сайт: 
  • Профессия: Ученик 1С
Помогите, пожалуйста, переделать форму ИНВ-3 под форму ИНВ-8а. Макет для формы сделан на основе макета для формы ИНВ-3, осталось лишь переделать функцию для печати созданного макета...в чем собственно для меня большая сложность((((
Функция для печати макета ИНВ-3:

Функция ПечатьИНВ3()
 
    ВалютаПечати = мВалютаРегламентированногоУчета;
 
    Запрос       = Новый Запрос;
    Запрос.УстановитьПараметр("ТекущийДокумент", Ссылка);
    Запрос.Текст =
    "ВЫБРАТЬ
    |   Номер КАК НомерДокумента,
    |   Дата  КАК ДатаДокумента,
    |   ДатаНачалаИнвентаризации  КАК ДатаНачалаИнвентаризации,
    |   ДатаОкончанияИнвентаризации  КАК ДатаОкончанияИнвентаризации,
    |   ДокументОснованиеВид  КАК ДокументОснованиеВид,
    |   ДокументОснованиеДата  КАК ДокументОснованиеДата,
    |   ДокументОснованиеНомер  КАК ДокументОснованиеНомер,
    |   ОтветственноеЛицо КАК ОтветственноеЛицо,
    |   Организация,
    |   Склад.Представление КАК ПредставлениеСклада,
    |   Товары.(
    |       НомерСтроки                     КАК Номер,
    |       Номенклатура,
    |       Номенклатура.НаименованиеПолное КАК ТоварНаименование,
    |       Номенклатура.Код                КАК ТоварКод,
    |       Номенклатура.БазоваяЕдиницаИзмерения.Наименование КАК ЕдиницаИзмеренияНаименование,
    |       Номенклатура.БазоваяЕдиницаИзмерения.Код          КАК ЕдиницаИзмеренияКодПоОКЕИ,
    |       СчетУчета КАК СубСчет,
    |       Цена КАК Цена,
    |       Количество     КАК ФактКоличество,
    |       КоличествоУчет КАК БухКоличество,
    |       Сумма КАК ФактСумма,
    |       СуммаУчет КАК БухСумма
    |   )
    |ИЗ
    |   Документ.ИнвентаризацияТоваровНаСкладе КАК ИнвентаризацияТоваровНаСкладе
    |
    |ГДЕ
    |   ИнвентаризацияТоваровНаСкладе.Ссылка = &ТекущийДокумент
    |
    |УПОРЯДОЧИТЬ ПО
    |   Товары.НомерСтроки
    |";
   
    Если Константы.ДополнительнаяКолонкаПечатныхФормДокументов.Получить() = Перечисления.ДополнительнаяКолонкаПечатныхФормДокументов.Артикул Тогда
        Запрос.Текст = СтрЗаменить(Запрос.Текст, "Номенклатура.Код", "Номенклатура.Артикул");
    КонецЕсли;
   
    Шапка = Запрос.Выполнить().Выбрать();
 
    Шапка.Следующий();
   
    ВыборкаСтрокТовары = Шапка.Товары.Выбрать();
   
    ЗапросКомиссия = Новый Запрос;
    ЗапросКомиссия.УстановитьПараметр("ТекущийДокумент", Ссылка);   
    ЗапросКомиссия.Текст =
    "ВЫБРАТЬ
    |   ИнвентаризацияТоваровНаСкладеИнвентаризационнаяКомиссия.ФизЛицо КАК ФизЛицо,
    |   ИнвентаризацияТоваровНаСкладеИнвентаризационнаяКомиссия.Председатель КАК Председатель
    |ИЗ
    |   Документ.ИнвентаризацияТоваровНаСкладе.ИнвентаризационнаяКомиссия КАК ИнвентаризацияТоваровНаСкладеИнвентаризационнаяКомиссия
    |ГДЕ
    |   ИнвентаризацияТоваровНаСкладеИнвентаризационнаяКомиссия.Ссылка = &ТекущийДокумент
    |
    |УПОРЯДОЧИТЬ ПО
    |   Председатель УБЫВ,
    |   ИнвентаризацияТоваровНаСкладеИнвентаризационнаяКомиссия.НомерСтроки";
   
    ТаблицаИнвентаризационнаяКомиссия = ЗапросКомиссия.Выполнить().Выгрузить();
 
    ТабДокумент = Новый ТабличныйДокумент;
   
    // Зададим параметры макета по умолчанию
    ТабДокумент.ПолеСверху              = 10;
    ТабДокумент.ПолеСлева               = 0;
    ТабДокумент.ПолеСнизу               = 0;
    ТабДокумент.ПолеСправа              = 0;
    ТабДокумент.РазмерКолонтитулаСверху = 10;
    ТабДокумент.ОриентацияСтраницы      = ОриентацияСтраницы.Ландшафт;
   
    ТабДокумент.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_ИнвентаризацияТоваровНаСкладе_ИНВ3";
    Макет       = ПолучитьМакет("ИНВ3");
 
    //////////////////////////////////////////////////////////////////////
    // 1-я страница формы
 
    // Выводим шапку накладной
    ОбластьМакета = Макет.ПолучитьОбласть("Шапка");
    ОбластьМакета.Параметры.Заполнить(Шапка);
   
    СведенияОбОрганизации = УправлениеКонтактнойИнформацией.СведенияОЮрФизЛице(Шапка.Организация, Шапка.ДатаДокумента);
    ПредставлениеОрганизации = ФормированиеПечатныхФорм.ОписаниеОрганизации(СведенияОбОрганизации, "НаименованиеДляПечатныхФорм,");
    ОбластьМакета.Параметры.ПредставлениеОрганизации = ПредставлениеОрганизации;
   
    ОбластьМакета.Параметры.ОрганизацияПоОКПО        = СведенияОбОрганизации.КодПоОКПО;
    ОбластьМакета.Параметры.ДатаДокумента            = Шапка.ДатаДокумента;
    ОбластьМакета.Параметры.НомерДокумента           = ОбщегоНазначения.ПолучитьНомерНаПечать(ЭтотОбъект);
    ОбластьМакета.Параметры.ДатаОкончанияИнвентаризацииЛокальныйФормат = Шапка.ДатаНачалаИнвентаризации;
   
    ДанныеМОЛ = ОбщегоНазначения.ДанныеФизЛица(Шапка.Организация, Шапка.ОтветственноеЛицо, Шапка.ДатаДокумента);
    ОбластьМакета.Параметры.ДолжностьМОЛ1     = ДанныеМОЛ.Должность;
    ОбластьМакета.Параметры.ФИОМОЛ1           = ДанныеМОЛ.Представление;   
       
    ТабДокумент.Вывести(ОбластьМакета);
    ТабДокумент.ВывестиГоризонтальныйРазделительСтраниц();
 
    //////////////////////////////////////////////////////////////////////
    // 2-я страница формы
 
    ИтогФактКоличество = 0;
    ИтогФактСумма      = 0;
    ИтогФактСуммаВсего = 0;
    ИтогБухКоличество  = 0;
    ИтогБухСумма       = 0;
 
    КолвоСтрокПоСтранице = 0;
    КолвоПоСтранице      = 0;
    СуммаЛиста           = 0;
    ИтогоКолво           = 0;
   
    НомерСтраницы = 2;
    Ном = 0;
 
    // Выводим заголовок таблицы
    ЗаголовокТаблицы = Макет.ПолучитьОбласть("ЗаголовокТаблицы");
    ЗаголовокТаблицы.Параметры.НомерСтраницы = "Страница " + НомерСтраницы;
    ТабДокумент.Вывести(ЗаголовокТаблицы);
 
    // Выводим многострочную часть документа
    ПодвалСтраницы  = Макет.ПолучитьОбласть("ПодвалСтраницы"); 
       
    Пока ВыборкаСтрокТовары.Следующий() Цикл
 
        Ном = Ном + 1;
        СтрокаТаблицы   = Макет.ПолучитьОбласть("Строка");
        СтрокаТаблицы.Параметры.Заполнить(ВыборкаСтрокТовары);
       
        СтрокаСПодвалом = Новый Массив;
        СтрокаСПодвалом.Добавить(СтрокаТаблицы);
        СтрокаСПодвалом.Добавить(ПодвалСтраницы);
       
        Если НЕ ФормированиеПечатныхФорм.ПроверитьВыводТабличногоДокумента(ТабДокумент, СтрокаСПодвалом) Тогда
 
            ОбластьИтоговПоСтранице = Макет.ПолучитьОбласть("ПодвалСтраницы");
 
            ОбластьИтоговПоСтранице.Параметры.ИтогоФактКоличество = ИтогФактКоличество;
            ОбластьИтоговПоСтранице.Параметры.ИтогоФактСумма      = ИтогФактСумма;
            ОбластьИтоговПоСтранице.Параметры.ИтогоБухКоличество  = ИтогБухКоличество;
            ОбластьИтоговПоСтранице.Параметры.ИтогоБухСумма       = ИтогБухСумма;
 
            ОбластьИтоговПоСтранице.Параметры.КоличествоПорядковыхНомеровНаСтраницеПрописью     = ЧислоПрописью(КолвоСтрокПоСтранице, ,",,,,,,,,0");
            ОбластьИтоговПоСтранице.Параметры.ОбщееКоличествоЕдиницФактическиНаСтраницеПрописью = ФормированиеПечатныхФорм.КоличествоПрописью(КолвоПоСтранице);
            ОбластьИтоговПоСтранице.Параметры.СуммаФактическиНаСтраницеПрописью                 = ОбщегоНазначения.СформироватьСуммуПрописью(СуммаЛиста, ВалютаПечати);
            ТабДокумент.Вывести(ОбластьИтоговПоСтранице);
           
            НомерСтраницы = НомерСтраницы + 1;
            ТабДокумент.ВывестиГоризонтальныйРазделительСтраниц();
 
            ЗаголовокТаблицы.Параметры.НомерСтраницы = "Страница " + НомерСтраницы;
            ТабДокумент.Вывести(ЗаголовокТаблицы);
 
            ИтогФактКоличество = 0;
            ИтогФактСумма      = 0;
            ИтогБухКоличество  = 0;
            ИтогБухСумма       = 0;
 
            КолвоСтрокПоСтранице = 0;
            КолвоПоСтранице      = 0;
            СуммаЛиста           = 0;
 
        КонецЕсли;
 
        СтрокаТаблицы.Параметры.Номер = Ном;
        СтрокаТаблицы.Параметры.ТоварНаименование = ВыборкаСтрокТовары.ТоварНаименование;
 
        ТабДокумент.Вывести(СтрокаТаблицы);
 
        ИтогФактКоличество = ИтогФактКоличество + ВыборкаСтрокТовары.ФактКоличество;
        ИтогФактСумма      = ИтогФактСумма      + ВыборкаСтрокТовары.ФактСумма;
        ИтогФактСуммаВсего = ИтогФактСуммаВсего + ВыборкаСтрокТовары.ФактСумма;
        ИтогБухКоличество  = ИтогБухКоличество  + ВыборкаСтрокТовары.БухКоличество;
        ИтогБухСумма       = ИтогБухСумма       + ВыборкаСтрокТовары.БухСумма;
        ИтогоКолво         = ИтогоКолво         + ВыборкаСтрокТовары.ФактКоличество;
 
        КолвоСтрокПоСтранице = КолвоСтрокПоСтранице + 1;
        КолвоПоСтранице      = КолвоПоСтранице      + ВыборкаСтрокТовары.ФактКоличество;
        СуммаЛиста           = СуммаЛиста           + ВыборкаСтрокТовары.ФактСумма;
 
    КонецЦикла;
 
    // Выводим итоги по последней странице
    ОбластьИтоговПоСтранице = Макет.ПолучитьОбласть("ПодвалСтраницы");
 
    ОбластьИтоговПоСтранице.Параметры.ИтогоФактКоличество  = ИтогФактКоличество;
    ОбластьИтоговПоСтранице.Параметры.ИтогоФактСумма       = ИтогФактСумма;
    ОбластьИтоговПоСтранице.Параметры.ИтогоБухКоличество   = ИтогБухКоличество;
    ОбластьИтоговПоСтранице.Параметры.ИтогоБухСумма        = ИтогБухСумма;
    ОбластьИтоговПоСтранице.Параметры.КоличествоПорядковыхНомеровНаСтраницеПрописью     = ЧислоПрописью(КолвоСтрокПоСтранице, ,",,,,,,,,0");
    ОбластьИтоговПоСтранице.Параметры.ОбщееКоличествоЕдиницФактическиНаСтраницеПрописью = ФормированиеПечатныхФорм.КоличествоПрописью(КолвоПоСтранице);
    ОбластьИтоговПоСтранице.Параметры.СуммаФактическиНаСтраницеПрописью                 = ОбщегоНазначения.СформироватьСуммуПрописью(СуммаЛиста, мВалютаРегламентированногоУчета);
    ТабДокумент.Вывести(ОбластьИтоговПоСтранице);
 
    // Выводим подвал документа
    ТабДокумент.ВывестиГоризонтальныйРазделительСтраниц();
    ОбластьМакета = Макет.ПолучитьОбласть("ПодвалОписи");
    ОбластьМакета.Параметры.Заполнить(Шапка);
    ОбластьМакета.Параметры.ОбщееКоличествоЕдиницФактическиНаСтраницеПрописью = ФормированиеПечатныхФорм.КоличествоПрописью(ИтогоКолво);
    ОбластьМакета.Параметры.КоличествоПорядковыхНомеровНаСтраницеПрописью     = ЧислоПрописью(ВыборкаСтрокТовары.Количество(), ,",,,,,,,,0");
    ОбластьМакета.Параметры.СуммаФактическиНаСтраницеПрописью                 = ОбщегоНазначения.СформироватьСуммуПрописью(ИтогФактСуммаВсего, ВалютаПечати);
   
    Инд = 1;
    Для Каждого ЧленКомиссии Из ТаблицаИнвентаризационнаяКомиссия Цикл
        ДанныеЧленаКомиссии = ОбщегоНазначения.ДанныеФизЛица(Шапка.Организация, ЧленКомиссии.ФизЛицо, Шапка.ДатаДокумента);
        Если Инд <= 4 Тогда
            Если ЧленКомиссии.Председатель Тогда
                ОбластьМакета.Параметры["ДолжностьПредседателя"] = ДанныеЧленаКомиссии.Должность;
                ОбластьМакета.Параметры["ФИОПредседателя"] = ДанныеЧленаКомиссии.Представление;
            Иначе
                ОбластьМакета.Параметры["ДолжностьЧленаКомиссии" + Инд] = ДанныеЧленаКомиссии.Должность;
                ОбластьМакета.Параметры["ФИОЧленаКомиссии" + Инд] = ДанныеЧленаКомиссии.Представление;
            КонецЕсли;     
        Иначе
            ТабДокумент.Вывести(ОбластьМакета);
           
            ОбластьМакета = Макет.ПолучитьОбласть("ДопЧленКомиссии");
            ОбластьМакета.Параметры["ДолжностьЧленаКомиссии"] = ДанныеЧленаКомиссии.Должность;
            ОбластьМакета.Параметры["ФИОЧленаКомиссии"] = ДанныеЧленаКомиссии.Представление;
        КонецЕсли;
        Инд = Инд + 1;
    КонецЦикла;
    ТабДокумент.Вывести(ОбластьМакета);
   
    ОбластьМакета = Макет.ПолучитьОбласть("ПодвалОписиМОЛ");
    ОбластьМакета.Параметры.Заполнить(Шапка);
    ОбластьМакета.Параметры.НачальныйНомерПоПорядку = 1;
    ОбластьМакета.Параметры.НомерКонца              = ВыборкаСтрокТовары.Количество();
       
    ОбластьМакета.Параметры.ДолжностьМОЛ1   = ДанныеМОЛ.Должность;
    ОбластьМакета.Параметры.ФИОМОЛ1         = ДанныеМОЛ.Представление;
   
    ОбластьМакета.Параметры.ДатаДокумента   = Шапка.ДатаДокумента;
   
    ТабДокумент.Вывести(ОбластьМакета);
   
    Возврат ТабДокумент;
 
КонецФункции // ПечатьИНВ3()




Как мне добавить к имеющемуся запрос данных из регистра сведений "СведенияОДрагметаллах" и отобразить их в созданном макете в разделе,где отображаются данные о драгметаллах??????

Последний раз редактировалось: MuI_I_Ika; 28 Янв 2014, 10:03


Оффлайн Foliage

  • *
  • Сообщений: 1
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2014-01-30
  • Сайт: 
  • Профессия: Программист 1С
Ваш запрос получает данные из табличной части Товары документа.
Вам нужно в запросе получить Драгметаллы вашей номенклатуры, например, левым соединеннием с регистром Драгметаллы по номенклатуре.


Добавлено: 30 Янв 2014, 07:20

А отобразить в печатной форме проще простого, нужной области макета назначаете именованный параметр и используете для вывода
ОбластьМакета.Параметры, как в исходном макете.


Теги:
 


* Живое общение

Не устроил ответ?

Зарегистрируйся и задай свой вопрос. Живое общение приносит результат намного быстрее.


Зарегистрироваться

* Реклама

* Поиск

* Последние задачи на разработку (фриланс)

* Реклама

* Последние вакансии

* Топ 10 авторов за месяц

Геннадий ОбьГЭС Геннадий ОбьГЭС
145 Сообщений
AIFrame
64 Сообщений
ilyay ilyay
63 Сообщений
alex0402
50 Сообщений
andron81_81
44 Сообщений
oleg-x
42 Сообщений
BuhRust
32 Сообщений
MuI_I_Ika MuI_I_Ika
31 Сообщений
Golickoff Golickoff
28 Сообщений
alexandr_ll
24 Сообщений

* Кто онлайн

  • Точка Гостей: 268
  • Точка Скрытых: 0
  • Точка Пользователей: 7
  • Точка Сейчас на форуме:

* Облако тэгов

* Форум 1С с мобильного

* Инструменты

* Дополнительно

Поиск

 
SimplePortal 2.3.5 © 2008-2012, SimplePortal