Имя: Пароль:
1C
1С v8
Почему генерирует один и тотже штрихкод в табличную часть.
, ,
0 максим_38
 
22.07.13
05:38
Когда вывожу документ в поле ШтрихКода подставляет одно и тоже ко всем позициям, подскажите как исправить.

Перем мВалютаРегламентированногоУчета Экспорт;

Функция ПечатьДокумента(СуммыВРублях = Ложь) Экспорт

   Запрос = Новый Запрос;
   Запрос.УстановитьПараметр("ТекущийДокумент", СсылкаНаОбъект);
   Запрос.Текст =
   "ВЫБРАТЬ
   |    РеализацияТоваровУслуг.Номер,
   |    РеализацияТоваровУслуг.Дата,
   |    РеализацияТоваровУслуг.ДоговорКонтрагента,
   |    РеализацияТоваровУслуг.Контрагент КАК Получатель,
   |    РеализацияТоваровУслуг.Организация,
   |    РеализацияТоваровУслуг.Организация КАК Поставщик,
   |    РеализацияТоваровУслуг.СуммаДокумента,
   |    РеализацияТоваровУслуг.ВалютаДокумента,
   |    РеализацияТоваровУслуг.УчитыватьНДС,
   |    РеализацияТоваровУслуг.СуммаВключаетНДС,
   |    РеализацияТоваровУслуг.ОтпускПроизвел,
   |    РеализацияТоваровУслуг.КурсВзаиморасчетов,
   |    РеализацияТоваровУслуг.КратностьВзаиморасчетов
   |ИЗ
   |    Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг
   |ГДЕ
   |    РеализацияТоваровУслуг.Ссылка = &ТекущийДокумент";
   Шапка = Запрос.Выполнить().Выбрать();
   Шапка.Следующий();

   ТекстКурс = "";

   СтрокаВыборкиПоляСодержания = ОбработкаТабличныхЧастей.ПолучитьЧастьЗапросаДляВыбораСодержания("РеализацияТоваровУслуг");

   Запрос = Новый Запрос;
   Запрос.УстановитьПараметр("ТекущийДокумент",  СсылкаНаОбъект);
   Запрос.УстановитьПараметр("ТекущийДокумент",  СсылкаНаОбъект);
   Запрос.Текст =
   "ВЫБРАТЬ
   |    ВложенныйЗапросПоТоварам.Номенклатура,
   |    ВЫРАЗИТЬ(ВложенныйЗапросПоТоварам.Номенклатура.НаименованиеПолное КАК СТРОКА(1000)) КАК Товар,
   |    ВложенныйЗапросПоТоварам.Номенклатура.Код КАК Код,
   |    ВложенныйЗапросПоТоварам.Номенклатура.Артикул КАК Артикул,
   |    ВложенныйЗапросПоТоварам.Количество,
   |    ВложенныйЗапросПоТоварам.КоличествоМест,
   |    ВложенныйЗапросПоТоварам.ЕдиницаИзмерения.Представление КАК ЕдиницаЦены,
   |    ВложенныйЗапросПоТоварам.ЕдиницаИзмеренияМест.Представление КАК ЕдиницаМест,
   |    ВложенныйЗапросПоТоварам.Цена,
   |    ВложенныйЗапросПоТоварам.Сумма,
   |    ВложенныйЗапросПоТоварам.СуммаНДС,
   |    ВложенныйЗапросПоТоварам.ПроцентСкидкиНаценки КАК Скидка,
   |    ВложенныйЗапросПоТоварам.ПроцентАвтоматическихСкидок КАК АвтоматическаяСкидка,
   |    ВложенныйЗапросПоТоварам.ХарактеристикаНоменклатуры КАК Характеристика,
   |    ВложенныйЗапросПоТоварам.СтранаПроисхождения КАК СтранаПроисхождения,
   |    ВложенныйЗапросПоТоварам.НомерГТД КАК НомерГТД,
   |    ВложенныйЗапросПоТоварам.СерияНоменклатуры КАК Серия,
   |    ВложенныйЗапросПоТоварам.НомерСтроки КАК НомерСтроки,
   |    ВложенныйЗапросПоТоварам.Метка КАК Метка
   |ИЗ
   |    (ВЫБРАТЬ
   |        РеализацияТоваровУслуг.Номенклатура КАК Номенклатура,
   |        РеализацияТоваровУслуг.ЕдиницаИзмерения КАК ЕдиницаИзмерения,
   |        РеализацияТоваровУслуг.ЕдиницаИзмеренияМест КАК ЕдиницаИзмеренияМест,
   |        РеализацияТоваровУслуг.Цена КАК Цена,
   |        РеализацияТоваровУслуг.СтавкаНДС КАК СтавкаНДС,
   |        РеализацияТоваровУслуг.ПроцентСкидкиНаценки КАК ПроцентСкидкиНаценки,
   |        РеализацияТоваровУслуг.ПроцентАвтоматическихСкидок КАК ПроцентАвтоматическихСкидок,
   |        РеализацияТоваровУслуг.СерияНоменклатуры.НомерГТД КАК НомерГТД,
   |        РеализацияТоваровУслуг.СерияНоменклатуры.СтранаПроисхождения КАК СтранаПроисхождения,
   |        РеализацияТоваровУслуг.ХарактеристикаНоменклатуры КАК ХарактеристикаНоменклатуры,
   |        РеализацияТоваровУслуг.СерияНоменклатуры КАК СерияНоменклатуры,
   |        СУММА(РеализацияТоваровУслуг.Количество) КАК Количество,
   |        СУММА(РеализацияТоваровУслуг.КоличествоМест) КАК КоличествоМест,
   |        СУММА(РеализацияТоваровУслуг.Сумма) КАК Сумма,
   |        СУММА(РеализацияТоваровУслуг.СуммаНДС) КАК СуммаНДС,
   |        МИНИМУМ(РеализацияТоваровУслуг.НомерСтроки) КАК НомерСтроки,
   |        0 КАК Метка
   |    ИЗ
   |        Документ.РеализацияТоваровУслуг.Товары КАК РеализацияТоваровУслуг
   |    ГДЕ
   |        РеализацияТоваровУслуг.Ссылка = &ТекущийДокумент
   |    
   |    СГРУППИРОВАТЬ ПО
   |        РеализацияТоваровУслуг.Номенклатура,
   |        РеализацияТоваровУслуг.ЕдиницаИзмерения,
   |        РеализацияТоваровУслуг.ЕдиницаИзмеренияМест,
   |        РеализацияТоваровУслуг.Цена,
   |        РеализацияТоваровУслуг.СтавкаНДС,
   |        РеализацияТоваровУслуг.ПроцентСкидкиНаценки,
   |        РеализацияТоваровУслуг.ПроцентАвтоматическихСкидок,
   |        РеализацияТоваровУслуг.СерияНоменклатуры,
   |        РеализацияТоваровУслуг.ХарактеристикаНоменклатуры,
   |        РеализацияТоваровУслуг.СерияНоменклатуры.НомерГТД,
   |        РеализацияТоваровУслуг.СерияНоменклатуры.СтранаПроисхождения) КАК ВложенныйЗапросПоТоварам
   |
   |ОБЪЕДИНИТЬ ВСЕ
   |
   |ВЫБРАТЬ
   |    " + СтрокаВыборкиПоляСодержания + ",
   |    " + СтрокаВыборкиПоляСодержания + ",
   |    РеализацияТоваровУслуг.Номенклатура.Код,
   |    РеализацияТоваровУслуг.Номенклатура.Артикул,
   |    РеализацияТоваровУслуг.Количество,
   |    NULL,
   |    РеализацияТоваровУслуг.Номенклатура.ЕдиницаХраненияОстатков.Представление,
   |    NULL,
   |    РеализацияТоваровУслуг.Цена,
   |    РеализацияТоваровУслуг.Сумма,
   |    РеализацияТоваровУслуг.СуммаНДС,
   |    РеализацияТоваровУслуг.ПроцентСкидкиНаценки,
   |    NULL,
   |    NULL,
   |    NULL,
   |    NULL,
   |    NULL,
   |    РеализацияТоваровУслуг.НомерСтроки,
   |    1
   |ИЗ
   |    Документ.РеализацияТоваровУслуг.Услуги КАК РеализацияТоваровУслуг
   |ГДЕ
   |    РеализацияТоваровУслуг.Ссылка = &ТекущийДокумент
   |
   |ОБЪЕДИНИТЬ ВСЕ
   |
   |ВЫБРАТЬ
   |    РеализацияТоваровУслуг.Номенклатура,
   |    ВЫРАЗИТЬ(РеализацияТоваровУслуг.Номенклатура.НаименованиеПолное КАК СТРОКА(1000)),
   |    РеализацияТоваровУслуг.Номенклатура.Код,
   |    РеализацияТоваровУслуг.Номенклатура.Артикул,
   |    РеализацияТоваровУслуг.Количество КАК Количество,
   |    NULL,
   |    РеализацияТоваровУслуг.Номенклатура.ЕдиницаХраненияОстатков.Представление,
   |    NULL,
   |    РеализацияТоваровУслуг.Цена,
   |    РеализацияТоваровУслуг.Сумма КАК Сумма,
   |    0,
   |    0,
   |    NULL,
   |    NULL,
   |    NULL,
   |    NULL,
   |    NULL,
   |    РеализацияТоваровУслуг.НомерСтроки КАК НомерСтроки,
   |    2
   |ИЗ
   |(ВЫБРАТЬ
   |    РеализацияТоваровУслуг.Номенклатура,
   |    СУММА(РеализацияТоваровУслуг.Количество) КАК Количество,
   |    РеализацияТоваровУслуг.Номенклатура.ЕдиницаХраненияОстатков.Представление,
   |    РеализацияТоваровУслуг.Цена,
   |    СУММА(РеализацияТоваровУслуг.Сумма) КАК Сумма,
   |    МИНИМУМ(РеализацияТоваровУслуг.НомерСтроки) КАК НомерСтроки
   |ИЗ
   |    Документ.РеализацияТоваровУслуг.ВозвратнаяТара КАК РеализацияТоваровУслуг
   |ГДЕ
   |    РеализацияТоваровУслуг.Ссылка = &ТекущийДокумент
   |СГРУППИРОВАТЬ ПО
   |    РеализацияТоваровУслуг.Номенклатура,
   |    РеализацияТоваровУслуг.Цена
   |) КАК РеализацияТоваровУслуг
   |УПОРЯДОЧИТЬ ПО
   |    Метка,
   |    НомерСтроки";

   ЗапросТовары = Запрос.Выполнить().Выгрузить();
   флВыводитьМест = истина;
   Если ЗапросТовары.Итог("КоличествоМест")=0 Тогда
       флВыводитьМест = ложь;
   КонецЕсли;
   
   ТабДокумент = Новый ТабличныйДокумент;
   ТабДокумент.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_РеализацияТоваровУслуг_Накладная";
   
   Макет = ПолучитьМакет("Накладная");

   // Выводим шапку накладной

   ОбластьМакета = Макет.ПолучитьОбласть("Заголовок");
   ОбластьМакета.Параметры.ТекстЗаголовка = ОбщегоНазначения.СформироватьЗаголовокДокумента(Шапка, "Расходная накладная");
   
   ОбластьМакета.Параметры.ПредставлениеДаты="Респечатано"+ТекущаяДата();
   если ссылкаНаОбъект.Проведен тогда
       ОбластьМакета.Параметры.Черновик="";
   иначе
       областьмакета.Параметры.Черновик="Черновик";
   конецесли;
   
   ТабДокумент.Вывести(ОбластьМакета);
   
   ОбластьМакета = Макет.ПолучитьОбласть("Поставщик");
   ПредставлениеПоставщика = ФормированиеПечатныхФорм.ОписаниеОрганизации(УправлениеКонтактнойИнформацией.СведенияОЮрФизЛице(Шапка.Организация, Шапка.Дата), "ПолноеНаименование,");
   ОбластьМакета.Параметры.ПредставлениеПоставщика = ПредставлениеПоставщика;
   ОбластьМакета.Параметры.Поставщик = Шапка.Поставщик;
   ТабДокумент.Вывести(ОбластьМакета);

   ОбластьМакета = Макет.ПолучитьОбласть("Покупатель");
   ПредставлениеПолучателя = ФормированиеПечатныхФорм.ОписаниеОрганизации(УправлениеКонтактнойИнформацией.СведенияОЮрФизЛице(Шапка.Получатель, Шапка.Дата), "ПолноеНаименование,");
   ОбластьМакета.Параметры.ПредставлениеПолучателя = ПредставлениеПолучателя;
   ОбластьМакета.Параметры.Получатель = Шапка.Получатель;
   ТабДокумент.Вывести(ОбластьМакета);

   ЕстьСкидки = ЗапросТовары.Итог("Скидка") + ЗапросТовары.Итог("АвтоматическаяСкидка") <> 0;

   ДопКолонка = Константы.ДополнительнаяКолонкаПечатныхФормДокументов.Получить();
   Если ДопКолонка = Перечисления.ДополнительнаяКолонкаПечатныхФормДокументов.Артикул Тогда
       ВыводитьКоды = Истина;
       Колонка = "Артикул";
   ИначеЕсли ДопКолонка = Перечисления.ДополнительнаяКолонкаПечатныхФормДокументов.Код Тогда
       ВыводитьКоды = Истина;
       Колонка = "Код";
   Иначе
       ВыводитьКоды = Ложь;
   КонецЕсли;

   ОбластьНомера = Макет.ПолучитьОбласть("ШапкаТаблицы|НомерСтроки");
   ОбластьКодов  = Макет.ПолучитьОбласть("ШапкаТаблицы|КолонкаКодов");
   ОбластьТовар   = Макет.ПолучитьОбласть("ШапкаТаблицы|Товар");
   ОбластьМест   = Макет.ПолучитьОбласть("ШапкаТаблицы|Мест");
   ОбластьДанных = Макет.ПолучитьОбласть("ШапкаТаблицы|КоличествоЦена");
   ОбластьСкидок = Макет.ПолучитьОбласть("ШапкаТаблицы|Скидка");
   ОбластьСуммы  = Макет.ПолучитьОбласть("ШапкаТаблицы|Сумма");

   ТабДокумент.Вывести(ОбластьНомера);
   Если ВыводитьКоды Тогда
       ОбластьКодов.Параметры.ИмяКолонкиКодов = Колонка;
       ТабДокумент.Присоединить(ОбластьКодов);
   КонецЕсли;
   ТабДокумент.Присоединить(ОбластьТовар);
   Если флВыводитьМест Тогда
       ТабДокумент.Присоединить(ОбластьМест);
   КонецЕсли;

   ТабДокумент.Присоединить(ОбластьДанных);
   Если ЕстьСкидки Тогда
       ТабДокумент.Присоединить(ОбластьСкидок);
   КонецЕсли;
   ТабДокумент.Присоединить(ОбластьСуммы);
   
   ОбластьКолонкаТовар = Макет.Область("Товар");
   Если Не ВыводитьКоды Тогда
       ОбластьКолонкаТовар.ШиринаКолонки = ОбластьКолонкаТовар.ШиринаКолонки +
       Макет.Область("КолонкаКодов").ШиринаКолонки;
   КонецЕсли;
   Если НЕ ЕстьСкидки Тогда
       ОбластьКолонкаТовар.ШиринаКолонки = ОбластьКолонкаТовар.ШиринаКолонки +
       Макет.Область("СуммаБезСкидки").ШиринаКолонки +
       Макет.Область("СуммаСкидки").ШиринаКолонки;
   КонецЕсли;

   Если не флВыводитьМест Тогда
       ОбластьКолонкаТовар.ШиринаКолонки = ОбластьКолонкаТовар.ШиринаКолонки +
       ФормированиеПечатныхФорм.РасчетШириныОбластиМакета("Мест", Макет);
   КонецЕсли;

   ОбластьНомера = Макет.ПолучитьОбласть("Строка|НомерСтроки");
   ОбластьКодов  = Макет.ПолучитьОбласть("Строка|КолонкаКодов");
   ОбластьКодов=Макет.ПолучитьОбласть("строка|Колонкакодов");
   ОбластьТовар  = Макет.ПолучитьОбласть("Строка|Товар");
   ОбластьМест  = Макет.ПолучитьОбласть("Строка|Мест");
   ОбластьДанных = Макет.ПолучитьОбласть("Строка|КоличествоЦена");
   ОбластьСкидок = Макет.ПолучитьОбласть("Строка|Скидка");
   ОбластьСуммы  = Макет.ПолучитьОбласть("Строка|Сумма");

   Сумма    = 0;
   СуммаНДС = 0;
   ВсегоСкидок    = 0;
   ВсегоБезСкидок = 0;
   КоэфКурса = ?( СуммыВРублях, Шапка.КурсВзаиморасчетов / Шапка.КратностьВзаиморасчетов, 1);
   
   СписокЗнач = ЗапросТовары.ВыгрузитьКолонку("Номенклатура");
    Штрихкоды="";    
    Запрос = Новый Запрос;
    Запрос.Текст =
    "ВЫБРАТЬ
    |    Штрихкоды.Штрихкод,
    |    Штрихкоды.Владелец КАК Владелец
    |ИЗ
    |    РегистрСведений.Штрихкоды КАК Штрихкоды
    |ГДЕ
    |    Штрихкоды.Владелец В(&СписокЗнач)
    |
    |УПОРЯДОЧИТЬ ПО
    |    Владелец";
   
    Запрос.УстановитьПараметр("СписокЗнач", СписокЗнач);
   
   
    ТабЗнач = Новый ТаблицаЗначений;
   
    ТабЗнач.Колонки.Добавить("Номер");
    ТабЗнач.Колонки.Добавить("Номенклатура");
    ТабЗнач.Колонки.Добавить("ШтрихКод");
   
   
    Результат = Запрос.Выполнить().Выбрать();
    m = 1;
    ном = 1;
    ПредВлад = "неопределено";
   
    Стр = Новый ТаблицаЗначений;
    Стр.Колонки.Добавить("ШтрихКод");
   
    Пока Результат.Следующий() Цикл
        Если Результат.Владелец = ПредВлад Тогда
            Стр.ШтрихКод = Стр.ШтрихКод + ", " + Результат.Штрихкод;
        Иначе
           
           
            Стр = ТабЗнач.Добавить();
            Стр.Номер = ном;
            Стр.Номенклатура = Результат.Владелец;        
            Стр.ШтрихКод = Результат.Штрихкод;    
            m=0;
            ном = ном + 1;
            ПредВлад = Результат.Владелец;
           
        КонецЕсли;
    КонецЦикла;
   
     Для каждого ВыборкаСтрокТовары Из ЗапросТовары Цикл
       
       
       Штрихкоды="";    
       СтрокаСоШтр = ТабЗнач.Найти(ВыборкаСтрокТовары.Номенклатура, "Номенклатура");
       Если ТипЗнч(СтрокаСоШтр) <> Тип("неопределено") Тогда
            Штрихкоды = СтрокаСоШтр.ШтрихКод;
       Иначе Штрихкоды = "";
           
       конецесли;
       //НумератоСтрок=НумераторСтрок+1;
        //ОбластьКодов.Параметры.НомерСтроки = НумераторСтрок;
       ОбластьКодов.Параметры.штрихкод=Штрихкоды;
       // ОбластьКодов.Параметры.Заполнить(ВыборкаСтрокТовары);
       //ОбластьТовар.Параметры.Товар = ВыборкаСтрокТовары;    

конеццикла;
   Для каждого ВыборкаСтрокТовары из ЗапросТовары Цикл

       Если Не ЗначениеЗаполнено(ВыборкаСтрокТовары.Номенклатура) Тогда
           Сообщить("В одной из строк не заполнено значение номенклатуры - строка при печати пропущена.", СтатусСообщения.Важное);
           Продолжить;
       КонецЕсли;

       ОбластьНомера.Параметры.НомерСтроки = ЗапросТовары.Индекс(ВыборкаСтрокТовары) + 1;
       ТабДокумент.Вывести(ОбластьНомера);
       
       Если ВыводитьКоды Тогда
           Если Колонка = "Артикул" Тогда
               ОбластьКодов.Параметры.Артикул = ВыборкаСтрокТовары.Артикул;
           Иначе
               ОбластьКодов.Параметры.Артикул = ВыборкаСтрокТовары.Код;
           КонецЕсли;
           ТабДокумент.Присоединить(ОбластьКодов);
       КонецЕсли;
       ОбластьТовар.Параметры.Заполнить(ВыборкаСтрокТовары);
       ОбластьТовар.Параметры.Товар = СокрЛП(ВыборкаСтрокТовары.Товар)
       + ФормированиеПечатныхФорм.ПредставлениеСерий(ВыборкаСтрокТовары)
       + ?(ВыборкаСтрокТовары.Метка = 2, " (возвратная тара)", "");        
       ТабДокумент.Присоединить(ОбластьТовар);

       Если флВыводитьМест Тогда
           ОбластьМест.Параметры.Заполнить(ВыборкаСтрокТовары);
           ТабДокумент.Присоединить(ОбластьМест);
       КонецЕсли;

       СуммаРуб = Окр(ВыборкаСтрокТовары.Сумма * КоэфКурса, 2, 1);

       ОбластьДанных.Параметры.Заполнить(ВыборкаСтрокТовары);
       //ОбластьДанных.Параметры.Цена  = ?(ВыборкаСтрокТовары.Количество = 0, СуммаРуб, Окр( СуммаРуб / ВыборкаСтрокТовары.Количество, 2, 1));
       ОбластьДанных.Параметры.Цена  = Окр(ВыборкаСтрокТовары.Цена * КоэфКурса, 2, 1);

       ТабДокумент.Присоединить(ОбластьДанных);

       // Скидка может быть NULL
       ПроцентСкидки = ?(ЗначениеЗаполнено(ВыборкаСтрокТовары.Скидка),ВыборкаСтрокТовары.Скидка,0)
       + ?(ЗначениеЗаполнено(ВыборкаСтрокТовары.АвтоматическаяСкидка),ВыборкаСтрокТовары.АвтоматическаяСкидка,0);

       Скидка = Ценообразование.ПолучитьСуммуСкидки(СуммаРуб, ПроцентСкидки);

       Если ЕстьСкидки Тогда
           ОбластьСкидок.Параметры.Скидка         = Скидка;
           ОбластьСкидок.Параметры.СуммаБезСкидки = ?(СуммыВРублях, СуммаРуб, ВыборкаСтрокТовары.Сумма) + Скидка;
           ТабДокумент.Присоединить(ОбластьСкидок);
       КонецЕсли;

       ОбластьСуммы.Параметры.Заполнить(ВыборкаСтрокТовары);
       Если СуммыВРублях Тогда
           ОбластьСуммы.Параметры.Сумма = СуммаРуб;
       КонецЕсли;

       ОбластьСуммы.Параметры.НомерГТДСтранаПроисхождения = ?(ЗначениеЗаполнено(ВыборкаСтрокТовары.НомерГТД),
       СокрЛП(ВыборкаСтрокТовары.НомерГТД.Код)+",", "") + Символы.ПС + ВыборкаСтрокТовары.СтранаПроисхождения;        
       
       ТабДокумент.Присоединить(ОбластьСуммы);
       Если СуммыВРублях Тогда
           Сумма          = Сумма       + СуммаРуб;
           СуммаНДС       = СуммаНДС    + Окр( ВыборкаСтрокТовары.СуммаНДС * КоэфКурса, 2, 1);
       Иначе
           Сумма          = Сумма       + ВыборкаСтрокТовары.Сумма;
           СуммаНДС       = СуммаНДС    + ВыборкаСтрокТовары.СуммаНДС;
       КонецЕсли;
       ВсегоСкидок    = ВсегоСкидок + Скидка;
       ВсегоБезСкидок = Сумма       + ВсегоСкидок;

   КонецЦикла;

   // Вывести Итого
   ОбластьНомера = Макет.ПолучитьОбласть("Итого|НомерСтроки");
   ОбластьКодов  = Макет.ПолучитьОбласть("Итого|КолонкаКодов");
   ОбластьТовар  = Макет.ПолучитьОбласть("Итого|Товар");
   ОбластьМест  = Макет.ПолучитьОбласть("Итого|Мест");
   ОбластьДанных = Макет.ПолучитьОбласть("Итого|КоличествоЦена");
   ОбластьСкидок = Макет.ПолучитьОбласть("Итого|Скидка");
   ОбластьСуммы  = Макет.ПолучитьОбласть("Итого|Сумма");

   ТабДокумент.Вывести(ОбластьНомера);
   Если ВыводитьКоды Тогда
       ТабДокумент.Присоединить(ОбластьКодов);
   КонецЕсли;
   ТабДокумент.Присоединить(ОбластьТовар);
   Если флВыводитьМест Тогда
       ТабДокумент.Присоединить(ОбластьМест);
   КонецЕсли;

   ТабДокумент.Присоединить(ОбластьДанных);
   Если ЕстьСкидки Тогда
       ОбластьСкидок.Параметры.ВсегоСкидок    = ВсегоСкидок;
       ОбластьСкидок.Параметры.ВсегоБезСкидок = ВсегоБезСкидок;
       ТабДокумент.Присоединить(ОбластьСкидок);
   КонецЕсли;
   ОбластьСуммы.Параметры.Всего = ОбщегоНазначения.ФорматСумм(Сумма);
   ТабДокумент.Присоединить(ОбластьСуммы);

   // Вывести ИтогоНДС
   Если Шапка.УчитыватьНДС Тогда
       ОбластьНомера = Макет.ПолучитьОбласть("ИтогоНДС|НомерСтроки");
       ОбластьКодов  = Макет.ПолучитьОбласть("ИтогоНДС|КолонкаКодов");
       ОбластьТовар  = Макет.ПолучитьОбласть("ИтогоНДС|Товар");
       ОбластьМест  = Макет.ПолучитьОбласть("ИтогоНДС|Мест");
       ОбластьДанных = Макет.ПолучитьОбласть("ИтогоНДС|КоличествоЦена");
       ОбластьСкидок = Макет.ПолучитьОбласть("ИтогоНДС|Скидка");
       ОбластьСуммы  = Макет.ПолучитьОбласть("ИтогоНДС|Сумма");

       ТабДокумент.Вывести(ОбластьНомера);
       Если ВыводитьКоды Тогда
           ТабДокумент.Присоединить(ОбластьКодов);
       КонецЕсли;
       ТабДокумент.Присоединить(ОбластьТовар);
       Если флВыводитьМест Тогда
           ТабДокумент.Присоединить(ОбластьМест);
       КонецЕсли;

       ОбластьДанных.Параметры.НДС = ?(Шапка.СуммаВключаетНДС, "В том числе НДС:", "Сумма НДС:");
       ТабДокумент.Присоединить(ОбластьДанных);
       Если ЕстьСкидки Тогда
           ТабДокумент.Присоединить(ОбластьСкидок);
       КонецЕсли;
       ОбластьСуммы.Параметры.ВсегоНДС = ОбщегоНазначения.ФорматСумм(СуммаНДС);
       ТабДокумент.Присоединить(ОбластьСуммы);
   КонецЕсли;

   // Вывести Сумму прописью
   ОбластьМакета = Макет.ПолучитьОбласть("СуммаПрописью");
   СуммаКПрописи = Сумма + ?(Шапка.СуммаВключаетНДС, 0, СуммаНДС);
   

   Если СуммыВРублях Тогда
       ОбластьМакета.Параметры.ИтоговаяСтрока ="Всего наименований " + ЗапросТовары.Количество()
       + ", на сумму " + ОбщегоНазначения.ФорматСумм(СуммаКПрописи, мВалютаРегламентированногоУчета);
       ОбластьМакета.Параметры.СуммаПрописью = ОбщегоНазначения.СформироватьСуммуПрописью(СуммаКПрописи, мВалютаРегламентированногоУчета);
   Иначе
       ОбластьМакета.Параметры.ИтоговаяСтрока ="Всего наименований " + ЗапросТовары.Количество()
       + ", на сумму " + ОбщегоНазначения.ФорматСумм(СуммаКПрописи, Шапка.ВалютаДокумента);
       ОбластьМакета.Параметры.СуммаПрописью = ОбщегоНазначения.СформироватьСуммуПрописью(СуммаКПрописи, Шапка.ВалютаДокумента);
   КонецЕсли;

   ТабДокумент.Вывести(ОбластьМакета);

   // Вывести подписи
   ОбластьМакета = Макет.ПолучитьОбласть("Подписи");

   // Отпуск товара произвел
   Если ЗначениеЗаполнено(Шапка.ОтпускПроизвел) Тогда
       ФамилияИмяОтчествоФизЛица        = ФормированиеПечатныхФорм.ФамилияИмяОтчество(Шапка.ОтпускПроизвел, Шапка.Дата);
       ФамилияИмяОтчествоОтпускПроизвел = ФамилияИмяОтчествоФизЛица.Фамилия + " " + ФамилияИмяОтчествоФизЛица.Имя + " " + ФамилияИмяОтчествоФизЛица.Отчество;
       ФИООтпускПроизвел                = ОбщегоНазначения.ФамилияИнициалыФизЛица(ФамилияИмяОтчествоОтпускПроизвел);
       ОбластьМакета.Параметры.ОтветственныйПредставление = ФИООтпускПроизвел;
   КонецЕсли;

   // Получить необходимое количество копий
    ТабДокумент.КоличествоЭкземпляров = 1;
    ТабДокумент.АвтоМасштаб = Истина;
    ТабДокумент.Вывести(ОбластьМакета);
   
     ТабДокумент.ОтображатьСетку  = Ложь;
    ТабДокумент.ТолькоПросмотр   = Истина;
    ТабДокумент.ОтображатьГруппировки=Ложь;
    ТабДокумент.ОтображатьЗаголовки=Ложь;
    ТабДокумент.Защита           = УправлениеДопПравамиПользователей.ЗащитаТаблиц();

          //Возврат ТабДокумент;
    ТабДокумент.Показать();

КонецФункции // ПечатьДокумента()
1 Wobland
 
22.07.13
05:40
ставлю на то, что в течение часа никто эту портянку не прочитает
2 Cube
 
22.07.13
05:58
(0) И на что ты рассчитываешь? Задавать вопросы надо кратко и лаконично, предварительно локализовав проблему. Ты же нам вывалил весь код, типа, "нате, разбирайтесь, а я пока чаю попью"... Красавчик, чё...
На этот твой выпад у меня один ответ - позови специалиста.
3 MiniMuk
 
22.07.13
06:02
7000руб
4 Любопытная
 
22.07.13
06:04
Стр = Новый ТаблицаЗначений;
    Стр.Колонки.Добавить("ШтрихКод");
   
    Пока Результат.Следующий() Цикл
        Если Результат.Владелец = ПредВлад Тогда
            Стр.ШтрихКод = Стр.ШтрихКод + ", " + Результат.Штрихкод;
        Иначе
           
           
            Стр = ТабЗнач.Добавить();
            Стр.Номер = ном;
            Стр.Номенклатура = Результат.Владелец;        
            Стр.ШтрихКод = Результат.Штрихкод;    
            m=0;
            ном = ном + 1;
            ПредВлад = Результат.Владелец;
           
        КонецЕсли;
    КонецЦикла;
Вот это что за ахинея? Если Стр - таблица значений, то какого овоща ты его потом в строку переопределяешь. С именами переменных разберись
5 Wobland
 
22.07.13
06:06
нашлась любопытная до чужих поэм ;)
6 Любопытная
 
22.07.13
06:20
(5) А мне не жалко :) Тем более, что проблему это, вероятно, не решит.
7 Wobland
 
22.07.13
06:42
ну тогда и я какашкой кину
>="Респечатано"+ТекущаяДата();
будет выглядеть некрасиво
8 cw014
 
22.07.13
09:24
6500 и пишу готовый код
9 Cube
 
22.07.13
10:21
(8) Ну всё, пошла нездоровая конкуренция... :)
10 cw014
 
22.07.13
10:40
(9) А как ты хотел? Демпинг
11 Wobland
 
22.07.13
10:45
6400 и диктую готовый код cw014
12 cw014
 
22.07.13
10:46
(11) 6000, треть Wobland и он не диктует мой готовый код )))