Имя: Пароль:
1C
Админ
документ РЕАЛИЗАЦИЯ ТОВАРОВ И УСЛУГ
0 Елена-Тамара
 
18.09.12
10:06
1C:Управление производственным предприятием
Технологическая платформа 8.2.15.301, номер версии 1.3.28.1
серверный вариант.

В документ РЕАЛИЗАЦИЯ ТОВАРОВ И УСЛУГ добавила в табличную часть дополнительный реквизит ДОП. Добавила в форму документа поле со ссылкой на этот реквизит. В форме все работает прекрасно — поле ДОП есть, данные туда вводятся.
А вот печатная форма это поле не видит. ОШИБКА:

Не удалось сформировать внешнюю печатную форму!
Ошибка при вызове метода контекста (Выполнить): {(36, 3)}: Поле не входит в группу "РеализацияТоваровУслуг.Доп"
<<?>>РеализацияТоваровУслуг.Доп,


Что с этим делать, кто знает?
1 PR
 
18.09.12
10:07
Ща забанят
2 Maxus43
 
18.09.12
10:07
Поле в ТЧ, а не в самом доке
3 ZanderZ
 
18.09.12
10:07
Добавить в группировку
4 Я не курил
 
18.09.12
10:10
Все хотят в номинацию попасть
5 Елена-Тамара
 
18.09.12
10:11
(2) ТЧ - что это?
6 Елена-Тамара
 
18.09.12
10:11
(3) Как?
7 rbcvg
 
18.09.12
10:12
(5) табличная часть
8 Елена-Тамара
 
18.09.12
10:13
(2) в ТЧ
9 Ненавижу 1С
 
гуру
18.09.12
10:15
текст запроса в студию
10 Елена-Тамара
 
18.09.12
10:20
(9)
Функция Печать() Экспорт
   Перем Доп;
   Если Не Метаданные.Имя = "УправлениеПроизводственнымПредприятием" Тогда
       Сообщить("Печатная форма предназначена для использования в конфигурации ""Управление производственным предприятией""", СтатусСообщения.Внимание);
   КонецЕсли;
   
   ТабДокумент = ПечатьТОРГ12(Истина);
   //ПечатьАктаОбОказанииУслуг("Макет",1,Ложь);
   УниверсальныеМеханизмы.НапечататьДокумент(ТабДокумент, 1, Ложь, ОбщегоНазначения.СформироватьЗаголовокДокумента(СсылкаНаОбъект), СсылкаНаОбъект);
   
   
КонецФункции // Печать

   // Функция формирует табличный документ с печатной формой накладной,
   // разработанной методистами
   //
   // Возвращаемое значение:
   //  Табличный документ - печатная форма накладной
   //
Функция ПечатьТОРГ12(БезУслуг = Ложь)
       
   ЕдиницаИзмеренияВеса = Константы.ЕдиницаИзмеренияВеса.Получить();
       
   ДопКолонка = Константы.ДополнительнаяКолонкаПечатныхФормДокументов.Получить();
   Если ДопКолонка = Перечисления.ДополнительнаяКолонкаПечатныхФормДокументов.Артикул Тогда
       ТоварКод = "Артикул";
       //!!! ETON
       //ТоварКод = "Доп";

   Иначе
       ТоварКод = "Код";
        //!!! ETON    
       //ТоварКод = "Доп";
       

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

       ОбластьМакета.Параметры.ТоварНаименование = СокрЛП(ВыборкаСтрок.ТоварНаименование)
       

       
       + ФормированиеПечатныхФорм.ПредставлениеСерий(ВыборкаСтрок)
       + ?(ВыборкаСтрок.Метка = 2, " (возвратная тара)", "");
           
       Если НЕ ЗначениеЗаполнено(ЕдиницаИзмеренияВеса) Тогда
           МассаБрутто = 0;
       Иначе
           МассаБрутто = ВыборкаСтрок.МассаБрутто;
           МассаБрутто = ?(МассаБрутто <> Неопределено И МассаБрутто <> NULL, МассаБрутто, 0);
       КонецЕсли;
           
       Мест        = ВыборкаСтрок.КоличествоМест;
       Мест        = ?(Мест <> Неопределено И Мест <> NULL, Мест, 0);
           
       Количество  = ВыборкаСтрок.Количество;
       СуммаСНДС   = Окр((ВыборкаСтрок.Сумма + ?(Шапка.СуммаВключаетНДС, 0, ВыборкаСтрок.СуммаНДС)), 2);
       СуммаНДС    = Окр(ВыборкаСтрок.СуммаНДС, 2);
       СуммаБезНДС = СуммаСНДС  - СуммаНДС;
           
       ОбластьМакета.Параметры.МассаБрутто = МассаБрутто;
       ОбластьМакета.Параметры.СуммаСНДС   = СуммаСНДС;
       ОбластьМакета.Параметры.СуммаНДС    = СуммаНДС;
       ОбластьМакета.Параметры.СтавкаНДС   = ВыборкаСтрок.СтавкаНДС;
       ОбластьМакета.Параметры.СуммаБезНДС = СуммаБезНДС;
           
       Если Шапка.СуммаВключаетНДС
           Или ВыборкаСтрок.ЕстьСкидкиПоСтроке Тогда
           ОбластьМакета.Параметры.Цена = ?(Количество = 0, 0, СуммаБезНДС / Количество);
       Иначе
           ОбластьМакета.Параметры.Цена = ВыборкаСтрок.Цена;
       КонецЕсли;
           
       МассивВыводимыхОбластей.Очистить();
       МассивВыводимыхОбластей.Добавить(ОбластьМакета);
       МассивВыводимыхОбластей.Добавить(ОбластьИтоговПоСтранице);
       Если Ном = КоличествоСтрок Тогда
           МассивВыводимыхОбластей.Добавить(ОбластьПодвала);
       КонецЕсли;        
           
       Если НЕ ТабДокумент.ПроверитьВывод(МассивВыводимыхОбластей) Тогда
               
           ОбластьИтоговПоСтранице = Макет.ПолучитьОбласть("ИтогоПоСтранице");
               
           ОбластьИтоговПоСтранице.Параметры.ИтогМассаБруттоПоСтранице = ИтогоМассаБруттоНаСтранице;
           ОбластьИтоговПоСтранице.Параметры.ИтогМестПоСтранице        = ИтогоМестНаСтранице;
           ОбластьИтоговПоСтранице.Параметры.ИтогКоличествоПоСтранице  = ИтогоКоличествоНаСтранице;
           ОбластьИтоговПоСтранице.Параметры.ИтогСуммыПоСтранице       = ИтогоСуммаНаСтранице;
           ОбластьИтоговПоСтранице.Параметры.ИтогНДСПоСтранице         = ИтогоНДСНаСтранице;
           ОбластьИтоговПоСтранице.Параметры.ИтогСуммыСНДСПоСтранице   = ИтогоСуммаСНДСНаСтранице;
               
           ТабДокумент.Вывести(ОбластьИтоговПоСтранице);
               
           // очистим итоги по странице
           ИтогоМассаБруттоНаСтранице = 0;
           ИтогоМестНаСтранице        = 0;
           ИтогоКоличествоНаСтранице  = 0;
           ИтогоСуммаНаСтранице       = 0;
           ИтогоНДСНаСтранице         = 0;
           ИтогоСуммаСНДСНаСтранице   = 0;
               
           НомерСтраницы = НомерСтраницы + 1;
           ТабДокумент.ВывестиГоризонтальныйРазделительСтраниц();
           ЗаголовокТаблицы.Параметры.НомерСтраницы = "Страница " + НомерСтраницы;
           ТабДокумент.Вывести(ЗаголовокТаблицы);
               
       КонецЕсли;        
           
       ТабДокумент.Вывести(ОбластьМакета);
           
       // увеличим итоги по странице
       ИтогоМассаБруттоНаСтранице = ИтогоМассаБруттоНаСтранице + МассаБрутто;
       ИтогоМестНаСтранице        = ИтогоМестНаСтранице        + Мест;
       ИтогоКоличествоНаСтранице  = ИтогоКоличествоНаСтранице  + Количество;
       ИтогоСуммаНаСтранице       = ИтогоСуммаНаСтранице       + СуммаБезНДС;
       ИтогоНДСНаСтранице         = ИтогоНДСНаСтранице         + СуммаНДС;
       ИтогоСуммаСНДСНаСтранице   = ИтогоСуммаСНДСНаСтранице   + СуммаСНДС;
           
       // увеличим итоги по дукументу
       ИтогоМассаБрутто = ИтогоМассаБрутто + МассаБрутто;
       ИтогоМест        = ИтогоМест        + Мест;
       ИтогоКоличество  = ИтогоКоличество  + Количество;
       ИтогоСумма       = ИтогоСумма       + СуммаБезНДС;
       ИтогоНДС         = ИтогоНДС         + СуммаНДС;
       ИтогоСуммаСНДС   = ИтогоСуммаСНДС   + СуммаСНДС;
           
   КонецЦикла;
       
   // Выводим итоги по последней странице
   ОбластьИтоговПоСтранице = Макет.ПолучитьОбласть("ИтогоПоСтранице");
   ОбластьИтоговПоСтранице.Параметры.ИтогМассаБруттоПоСтранице = ИтогоМассаБруттоНаСтранице;
   ОбластьИтоговПоСтранице.Параметры.ИтогМестПоСтранице        = ИтогоМестНаСтранице;
   ОбластьИтоговПоСтранице.Параметры.ИтогКоличествоПоСтранице  = ИтогоКоличествоНаСтранице;
   ОбластьИтоговПоСтранице.Параметры.ИтогСуммыПоСтранице       = ИтогоСуммаНаСтранице;
   ОбластьИтоговПоСтранице.Параметры.ИтогНДСПоСтранице         = ИтогоНДСНаСтранице;
   ОбластьИтоговПоСтранице.Параметры.ИтогСуммыСНДСПоСтранице   = ИтогоСуммаСНДСНаСтранице;
       
   ТабДокумент.Вывести(ОбластьИтоговПоСтранице);
       
   // Выводим итоги по документу в целом
   ОбластьМакета = Макет.ПолучитьОбласть("Всего");
   ОбластьМакета.Параметры.ИтогМассаБрутто = ИтогоМассаБрутто;
   ОбластьМакета.Параметры.ИтогМест        = ИтогоМест;
   ОбластьМакета.Параметры.ИтогКоличество  = ИтогоКоличество;
   ОбластьМакета.Параметры.ИтогСуммы       = ИтогоСумма;
   ОбластьМакета.Параметры.ИтогНДС         = ИтогоНДС;
   ОбластьМакета.Параметры.ИтогСуммыСНДС   = ИтогоСуммаСНДС;
       
   ТабДокумент.Вывести(ОбластьМакета);
       
   // Выводим подвал документа
   ОбластьМакета = Макет.ПолучитьОбласть("Подвал");
       
   ПолнаяДатаДокумента = Формат(Шапка.ДатаДокумента, "ДФ=""дд ММММ гггг """"года""""""");
   ДлинаСтроки = СтрДлина(ПолнаяДатаДокумента);
   ПервыйРазделитель = Найти(ПолнаяДатаДокумента," ");
   ВторойРазделитель = Найти(Прав(ПолнаяДатаДокумента,ДлинаСтроки-ПервыйРазделитель)," ")+ПервыйРазделитель;
   ОбластьМакета.Параметры.ДатаДокументаДень     = """"+Лев(ПолнаяДатаДокумента,ПервыйРазделитель-1)+"""";
   ОбластьМакета.Параметры.ДатаДокументаМесяц    = Сред(ПолнаяДатаДокумента,ПервыйРазделитель+1,ВторойРазделитель-ПервыйРазделитель-1);
   ОбластьМакета.Параметры.ДатаДокументаГод      = Прав(ПолнаяДатаДокумента,ДлинаСтроки-ВторойРазделитель);    
       
   Руководители = РегламентированнаяОтчетность.ОтветственныеЛицаОрганизаций(Шапка.Руководители, Шапка.ДатаДокумента,);
   Руководитель = Руководители.Руководитель;
   Бухгалтер    = Руководители.ГлавныйБухгалтер;
       
   // Главный бухгалтер
   ОбластьМакета.Параметры.ФИОГлавБухгалтера = Бухгалтер;
       
   // Отпуск товара разрешил
   Если НЕ ЗначениеЗаполнено(Шапка.ОтпускРазрешил) Тогда
       ФИООтпускРазрешил       = Руководитель;
       ДолжностьОтпускРазрешил = Руководители.РуководительДолжность;
   Иначе
       ФамилияИмяОтчествоФизЛица        = ФормированиеПечатныхФорм.ФамилияИмяОтчество(Шапка.ОтпускРазрешил, Шапка.ДатаДокумента);
       ПодразделениеДолжностьФизЛица    = ФормированиеПечатныхФорм.СведенияОСотруднике(Шапка.ОтпускРазрешил, Шапка.ДатаДокумента);
       ФамилияИмяОтчествоОтпускРазрешил = ФамилияИмяОтчествоФизЛица.Фамилия + " " + ФамилияИмяОтчествоФизЛица.Имя + " " + ФамилияИмяОтчествоФизЛица.Отчество;
       ФИООтпускРазрешил                = ОбщегоНазначения.ФамилияИнициалыФизЛица(ФамилияИмяОтчествоОтпускРазрешил);
       ДолжностьОтпускРазрешил          = ПодразделениеДолжностьФизЛица.Должность;
   КонецЕсли;
       
   ОбластьМакета.Параметры.ФИОРуководителя       = ФИООтпускРазрешил;
   ОбластьМакета.Параметры.ДолжностьРуководителя = ДолжностьОтпускРазрешил;
       
   // Отпуск товара произвел
   Если НЕ ЗначениеЗаполнено(Шапка.ОтпускПроизвел) Тогда
       ФамилияИмяОтчествоФизЛица     = ФормированиеПечатныхФорм.ФамилияИмяОтчество(Шапка.ОтветственноеЛицо, Шапка.ДатаДокумента);
       ПодразделениеДолжностьФизЛица = ФормированиеПечатныхФорм.СведенияОСотруднике(Шапка.ОтветственноеЛицо, Шапка.ДатаДокумента);
   Иначе
       ФамилияИмяОтчествоФизЛица     = ФормированиеПечатныхФорм.ФамилияИмяОтчество(Шапка.ОтпускПроизвел, Шапка.ДатаДокумента);
       ПодразделениеДолжностьФизЛица = ФормированиеПечатныхФорм.СведенияОСотруднике(Шапка.ОтпускПроизвел, Шапка.ДатаДокумента);
   КонецЕсли;
       
   ФамилияИмяОтчествоОтпускПроизвел = ФамилияИмяОтчествоФизЛица.Фамилия + " " + ФамилияИмяОтчествоФизЛица.Имя + " " + ФамилияИмяОтчествоФизЛица.Отчество;
   ФИООтпускПроизвел                = ОбщегоНазначения.ФамилияИнициалыФизЛица(ФамилияИмяОтчествоОтпускПроизвел);
   ДолжностьОтпускПроизвел          = ПодразделениеДолжностьФизЛица.Должность;
       
   ОбластьМакета.Параметры.ФИОКладовщика       = ФИООтпускПроизвел;
   ОбластьМакета.Параметры.ДолжностьКладовщика = ДолжностьОтпускПроизвел;
       
   // Доверенность
   ОбластьМакета.Параметры.ДоверенностьНомер     = Шапка.ДоверенностьНомер;
   ОбластьМакета.Параметры.ДоверенностьДата      = Формат(Шапка.ДоверенностьДата, "ДФ='дд ММММ гггг'");
   ОбластьМакета.Параметры.ДоверенностьВыдана    = Шапка.ДоверенностьВыдана;
   ОбластьМакета.Параметры.ДоверенностьЧерезКого = Шапка.ДоверенностьЧерезКого;
       
   Если ЗначениеЗаполнено(ЕдиницаИзмеренияВеса) И ИтогоМассаБрутто > 0 Тогда
       ОбластьМакета.Параметры.МассаГрузаПрописью = ЧислоПрописью(ИтогоМассаБрутто, ,",,,,,,,,0")+ " " +ЕдиницаИзмеренияВеса.Наименование + ".";
   КонецЕсли;
       
   Если ИтогоМест > 0 Тогда
       ОбластьМакета.Параметры.ВсегоМестПрописью = ЧислоПрописью(ИтогоМест, ,",,,,,,,,0");
   КонецЕсли;
       
   ОбластьМакета.Параметры.КоличествоПорядковыхНомеровЗаписейПрописью = ЧислоПрописью(КоличествоСтрок, ,",,,,,,,,0");
   ОбластьМакета.Параметры.СуммаПрописью =
11 aleks-id
 
18.09.12
10:22
СГРУППИРОВАТЬ ПО
   |        РеализацияТоваровУслуг.Доп,
12 Джинн
 
18.09.12
10:23
Мдя, номинант обходит всех....

PS См. группировку во вложенном запросе.
13 Serg_1960
 
18.09.12
10:23
(0) Вас попросили только запрос озвучить. Спасибо что не всю конфигурацию скопипастили :)
14 Miss1C
 
18.09.12
10:24
(11)Победитель Алекс, возьмите пряник с полки)
15 Ненавижу 1С
 
гуру
18.09.12
10:24
(10) мало кода
16 Miss1C
 
18.09.12
10:24
(13)А чего церемонится )
17 Елена-Тамара
 
18.09.12
10:27
Да ладно вам ругаться то.....
18 Елена-Тамара
 
18.09.12
10:31
(11)

Не удалось сформировать внешнюю печатную форму!
Ошибка при вызове метода контекста (Выполнить): В случае использования операторов ОБЪЕДИНИТЬ, поля предложений УПОРЯДОЧИТЬ ПО и ИТОГИ ПО должны находиться в списке выбора.
19 Serg_1960
 
18.09.12
10:33
(18) вот шас начнут ругаться. Могут и послать... книжки читать по языку запросов.
20 zippygrill
 
18.09.12
10:34
(18) колонка Доп имеет числовое значение или как?
21 Miss1C
 
18.09.12
10:35
(18)Там где у вас "ВІБРАТЬ  - где то не вібрано ваше поле, по которому вы делаете УПОРЯДОЧИВАНИЕ
22 sergeev-ag-1977
 
18.09.12
10:35
реквизит прикручен к ТЧ, а в запросе на него ссылаетесь как на реквизит документа .... не взлетит.
23 Елена-Тамара
 
18.09.12
10:35
(18) текстовое
24 Fedot200
 
18.09.12
10:36
А зачем?
25 Елена-Тамара
 
18.09.12
10:37
(24) что - "зачем?"
26 alkov
 
18.09.12
10:39
Позвать программиста уже предлагали?
27 Fedot200
 
18.09.12
10:39
(25) добавила в табличную часть дополнительный реквизит ДОП. Добавила в форму документа поле со ссылкой на этот реквизит. В форме все работает прекрасно — поле ДОП есть
28 Елена-Тамара
 
18.09.12
10:40
(27) капризы контрагентов - соответственно, наших пользователей
29 Fedot200
 
18.09.12
10:41
(28) Зачем реквизит в табличную часть, а потом на форму???
и в какую таб. часть, в товары?
30 Елена-Тамара
 
18.09.12
10:43
(28) в товары. Есть другой способ добавить новое поле?
31 sergeev-ag-1977
 
18.09.12
10:43
Елена конфигурация у Вас какая ?
32 sergeev-ag-1977
 
18.09.12
10:43
понял
33 sergeev-ag-1977
 
18.09.12
10:44
попробуйте решить эту же задачу в конструкторе запросов, прежде чем лезть во ВПФ
34 sergeev-ag-1977
 
18.09.12
10:44
посмотрите, так наглядно и будет ясно где тупим ...
35 Елена-Тамара
 
18.09.12
10:44
(31) УПП
36 Fedot200
 
18.09.12
10:45
(30) Вам нужно в каждой строке писать доп. информацию?
37 Елена-Тамара
 
18.09.12
10:45
(36) да
38 sergeev-ag-1977
 
18.09.12
10:46
Елена - хватит сидеть на формах - работайте в конструкторе запроса - поймёте где не понимаете.
39 Елена-Тамара
 
18.09.12
10:49
(38) Конечно, пойму. Потом....
А нужно БЫСТРО!
40 Fedot200
 
18.09.12
10:49
(37) Тогда смотрите как номенклатура в запросе, так-же делайте свой доп.
41 Alex S D
 
18.09.12
10:49
лучше день потерять, потом за 5 минут сделать)
42 Елена-Тамара
 
18.09.12
11:20
Все получилось (не без вашей помощи).
Всем спасибо!
43 Елена-Тамара
 
18.09.12
11:20
*************
Проблемы невозможно решaть нa том же уровне компетентности, нa котором они возникaют. Альберт Эйнштейн