Имя: Пароль:
1C
1С v8
Тор16 в УТ 10.3 без цены и сумм, как получить цену?
0 ded20ded
 
16.01.13
14:54
Тор16 в УТ 10.3 без цены и сумм, как получить цену? по партиям провел но все равно данные без цены
1 ded20ded
 
16.01.13
15:03
ап
2 chelentano
 
16.01.13
15:10
(0) чо?
3 ded20ded
 
16.01.13
15:11
почему проставляется без суммы?
4 ded20ded
 
16.01.13
15:11
без цены
5 iceman2112
 
16.01.13
15:22
программист?
6 ded20ded
 
16.01.13
15:49
если есть кусок кода то поправлю
7 ded20ded
 
16.01.13
15:49
скопирую и вставлю
8 ded20ded
 
16.01.13
15:54
// Формирует унифицированную форму ТОРГ-16
//
// Возвращаемое значение:
//  Табличный документ - унифицировання форма ТОРГ-16
//
Функция ПечатьТОРГ16()

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

   Запрос = Новый Запрос;
   Запрос.УстановитьПараметр("ТекущийДокумент", ЭтотОбъект.Ссылка);
   Запрос.УстановитьПараметр("ВидСкладаНТТ",    Перечисления.ВидыСкладов.НТТ);

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

   Шапка = Запрос.Выполнить().Выбрать();
   Шапка.Следующий();

   Макет       = ПолучитьОбщийМакет("ТОРГ16");
   ТабДокумент = Новый ТабличныйДокумент;
   ТабДокумент.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_СписаниеТоваров_ТОРГ16";

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

   Руководители = РегламентированнаяОтчетность.ОтветственныеЛицаОрганизации(Шапка.Руководители, Шапка.ДатаДокумента,);
   Руководитель = Руководители.Руководитель;
   Бухгалтер    = Руководители.ГлавныйБухгалтер;
   ОбластьМакета.Параметры.ФИОРуководителя = Руководитель;

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

   СтрокНаСтранице = 23;
   СтрокШапки      = 11;
   СтрокПодвала    = 0;
   НомерСтраницы   = 1;
   Ном             = 0;

   ВыборкаСтрокТовары = Шапка.Товары.Выбрать();
   ВыборкаСтрокТара   = Шапка.ВозвратнаяТара.Выбрать();
   КоличествоСтрок    = ВыборкаСтрокТовары.Количество() + ВыборкаСтрокТара.Количество();

   Если КоличествоСтрок = 1 Тогда
       ПереноситьПоследнююСтроку = 0;
   Иначе
       ЦелыхСтраницСПодвалом     = Цел((СтрокШапки + КоличествоСтрок + СтрокПодвала) / СтрокНаСтранице);
       ЦелыхСтраницБезПодвала    = Цел((СтрокШапки + КоличествоСтрок - 1) / СтрокНаСтранице);
       ПереноситьПоследнююСтроку = ЦелыхСтраницСПодвалом - ЦелыхСтраницБезПодвала;
   КонецЕсли;

   // Выводим заголовок таблицы
   ЗаголовокТаблицы = Макет.ПолучитьОбласть("ЗаголовокТаблицыПервогоЛиста");
   ТабДокумент.Вывести(ЗаголовокТаблицы);

   ОбластьМакета = Макет.ПолучитьОбласть("СтрокаПервогоЛиста");

   // Товары
   ВыборкаСтрокТовары = Шапка.Товары.Выбрать();
   Пока ВыборкаСтрокТовары.Следующий() Цикл

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

       Ном = Ном + 1;

       //Начинаем новую страницу, если предыдущая строка была последней на странице
       //или пора переносить последнюю строку на последнюю страницу с подвалом.
       ЦелаяСтраница = (СтрокШапки + Ном - 1) / СтрокНаСтранице;
       Если (ЦелаяСтраница = Цел(ЦелаяСтраница))
        или ((ПереноситьПоследнююСтроку = 1) и (Ном = КоличествоСтрок)) Тогда

           ИтогоСтоимостьПоСтранице = 0;
           НомерСтраницы            = НомерСтраницы + 1;
           ТабДокумент.ВывестиГоризонтальныйРазделительСтраниц();
           ТабДокумент.Вывести(ЗаголовокТаблицы);
       КонецЕсли;

       ОбластьМакета.Параметры.Заполнить(ВыборкаСтрокТовары);
       ОбластьМакета.Параметры.ДатаСписанияТовара = Шапка.ДатаДокумента;

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

   // Тара
   ВыборкаСтрокТара = Шапка.ВозвратнаяТара.Выбрать();
   Пока ВыборкаСтрокТара.Следующий() Цикл

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

       Ном = Ном + 1;

       //Начинаем новую страницу, если предыдущая строка была последней на странице
       //или пора переносить последнюю строку на последнюю страницу с подвалом.
       ЦелаяСтраница = (СтрокШапки + Ном - 1) / СтрокНаСтранице;
       Если (ЦелаяСтраница = Цел(ЦелаяСтраница))
        или ((ПереноситьПоследнююСтроку = 1) и (Ном = КоличествоСтрок)) Тогда

           ИтогоСтоимостьПоСтранице = 0;
           НомерСтраницы            = НомерСтраницы + 1;
           ТабДокумент.ВывестиГоризонтальныйРазделительСтраниц();
           ТабДокумент.Вывести(ЗаголовокТаблицы);
       КонецЕсли;

       ОбластьМакета.Параметры.Заполнить(ВыборкаСтрокТара);
       ОбластьМакета.Параметры.ДатаСписанияТовара = Шапка.ДатаДокумента;

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

   СтрокНаСтранице = 27;
   СтрокШапки      = 5;
   СтрокПодвала    = 11;
   НомерСтраницы   = 1;
   Ном             = 0;

   ТабДокумент.ВывестиГоризонтальныйРазделительСтраниц();

   НомерСтраницы                            = НомерСтраницы + 1;
   ЗаголовокТаблицы                         = Макет.ПолучитьОбласть("ЗаголовокТаблицыВторогоЛиста");
   ЗаголовокТаблицы.Параметры.НомерСтраницы = "Страница " + НомерСтраницы;
   ТабДокумент.Вывести(ЗаголовокТаблицы);

   Если КоличествоСтрок = 1 Тогда
       ПереноситьПоследнююСтроку = 0;
   Иначе
       ЦелыхСтраницСПодвалом     = Цел((СтрокШапки + КоличествоСтрок + СтрокПодвала) / СтрокНаСтранице);
       ЦелыхСтраницБезПодвала    = Цел((СтрокШапки + КоличествоСтрок - 1) / СтрокНаСтранице);
       ПереноситьПоследнююСтроку = ЦелыхСтраницСПодвалом - ЦелыхСтраницБезПодвала;
   КонецЕсли;

   ИтогоСтоимость = 0;

   // Выводим многострочную часть докмента
   ОбластьМакета = Макет.ПолучитьОбласть("СтрокаВторогоЛиста");

   // Товары
   ВыборкаСтрокТовары = Шапка.Товары.Выбрать();
   Пока ВыборкаСтрокТовары.Следующий() Цикл

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

       Ном = Ном + 1;

       //Начинаем новую страницу, если предыдущая строка была последней на странице
       //или пора переносить последнюю строку на последнюю страницу с подвалом.
       ЦелаяСтраница = (СтрокШапки + Ном - 1) / СтрокНаСтранице;
       
       Если (ЦелаяСтраница = Цел(ЦелаяСтраница))
        или ((ПереноситьПоследнююСтроку = 1) и (Ном = КоличествоСтрок)) Тогда

           ИтогоСтоимостьПоСтранице = 0;
           НомерСтраницы            = НомерСтраницы + 1;
           ТабДокумент.ВывестиГоризонтальныйРазделительСтраниц();
           ЗаголовокТаблицы.Параметры.НомерСтраницы = "Страница " + НомерСтраницы;
           ТабДокумент.Вывести(ЗаголовокТаблицы);
       КонецЕсли;
   
       ОбластьМакета.Параметры.Заполнить(ВыборкаСтрокТовары);

       КоличествоМест = Формат(ВыборкаСтрокТовары.Количество, "ЧЦ=15; ЧДЦ=3");

       Если ВыборкаСтрокТовары.КоличествоМест <> 0 И ЗначениеЗаполнено(ВыборкаСтрокТовары.ЕдиницаИзмеренияМестНаименование) Тогда
           КоличествоМест = КоличествоМест
                            + Символы.ПС
                            + " (" + Формат(ВыборкаСтрокТовары.КоличествоМест,"ЧЦ=15; ЧДЦ=0")
                            + " "
                            + ВыборкаСтрокТовары.ЕдиницаИзмеренияМестНаименование
                            + ")";
       КонецЕсли;

       ОбластьМакета.Параметры.КоличествоМест    = КоличествоМест;
       ОбластьМакета.Параметры.ТоварНаименование = ВыборкаСтрокТовары.ТоварНаименование + ФормированиеПечатныхФорм.ПредставлениеСерий(ВыборкаСтрокТовары);
       МассаНетто                                = ВыборкаСтрокТовары.МассаОдногоМеста * ВыборкаСтрокТовары.КоличествоМест;
       ОбластьМакета.Параметры.МассаНетто        = МассаНетто;

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

       // Обновим итоги по документу
       ИтогоСтоимость = ИтогоСтоимость + ВыборкаСтрокТовары.Стоимость;
   КонецЦикла;

   // Тара
   ВыборкаСтрокТара = Шапка.ВозвратнаяТара.Выбрать();
   Пока ВыборкаСтрокТара.Следующий() Цикл

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

       Ном = Ном + 1;

       //Начинаем новую страницу, если предыдущая строка была последней на странице
       //или пора переносить последнюю строку на последнюю страницу с подвалом.
       ЦелаяСтраница = (СтрокШапки + Ном - 1) / СтрокНаСтранице;
       
       Если (ЦелаяСтраница = Цел(ЦелаяСтраница))
        или ((ПереноситьПоследнююСтроку = 1) и (Ном = КоличествоСтрок)) Тогда

           ИтогоСтоимостьПоСтранице = 0;
           НомерСтраницы            = НомерСтраницы + 1;
           ТабДокумент.ВывестиГоризонтальныйРазделительСтраниц();
           ЗаголовокТаблицы.Параметры.НомерСтраницы = "Страница " + НомерСтраницы;
           ТабДокумент.Вывести(ЗаголовокТаблицы);
       КонецЕсли;
   
       ОбластьМакета.Параметры.Заполнить(ВыборкаСтрокТара);

       ОбластьМакета.Параметры.КоличествоМест    = Формат(ВыборкаСтрокТара.Количество, "ЧЦ=15; ЧДЦ=3");
       ОбластьМакета.Параметры.ТоварНаименование = ВыборкаСтрокТара.ТоварНаименование + " (возвратная тара)";

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

       // Обновим итоги по документу
       ИтогоСтоимость = ИтогоСтоимость + ВыборкаСтрокТара.Стоимость;
   КонецЦикла;

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

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

   // Зададим параметры макета
   ТабДокумент.ПолеСверху = 0;
   ТабДокумент.ПолеСлева  = 0;
   ТабДокумент.ПолеСнизу  = 0;
   ТабДокумент.ПолеСправа = 0;
   ТабДокумент.ОриентацияСтраницы = ОриентацияСтраницы.Ландшафт;

   Возврат ТабДокумент;

КонецФункции // ПечатьТОРГ16()
9 ded20ded
 
16.01.13
15:54
где тут что поправить
10 ded20ded
 
16.01.13
22:15
ап
11 ДенисЧ
 
16.01.13
22:31
нуна в регистры таки лезьть
12 ded20ded
 
16.01.13
22:42
Денис, а что именно смотреть какой регистр на предмет чего?
13 ДенисЧ
 
16.01.13
22:46
в регистр партий, очевидно... на предмет сумм, которые таки очень нужны
14 DozaT
 
16.01.13
22:58
данные в табличный документ выводятся из заспроса, а  в запросе данные берутся из документа. причем тут регистры. у вас в документе в табличной Части  Товары, цена проставленна? если да, значит здесь дело в этом месте, цена обнуляется так как склад не тот
   |        ВЫБОР
   |            КОГДА Склад.ВидСклада = &ВидСкладаНТТ ТОГДА Цена
   |            ИНАЧЕ 0
   |        КОНЕЦ КАК Цена,
   |        ВЫБОР
   |            КОГДА Склад.ВидСклада = &ВидСкладаНТТ ТОГДА Сумма
   |            ИНАЧЕ 0
   |        КОНЕЦ КАК Стоимость,
15 ded20ded
 
16.01.13
23:01
ну и как быть инвентаризацию делаю по обычному оптовому складу
Акт списания печатается с ценой так как цену берет из табличной части на прямую из документа а Торг 16 с нулями весь
16 ded20ded
 
16.01.13
23:02
что правильно поправить в запросе
  |        ВЫБОР
   |            КОГДА Склад.ВидСклада = &ВидСкладаНТТ ТОГДА Цена
   |            ИНАЧЕ 0
   |        КОНЕЦ КАК Цена,
   |        ВЫБОР
   |            КОГДА Склад.ВидСклада = &ВидСкладаНТТ ТОГДА Сумма
   |            ИНАЧЕ 0
   |        КОНЕЦ КАК Стоимость,

чтобы цена и сумма взялись из запроса?
17 ded20ded
 
16.01.13
23:02
из табличной части документа
18 DozaT
 
16.01.13
23:04
как заполняется ТЧ документа ТОРГ16. этот код скиньте.
19 DozaT
 
16.01.13
23:04
не печатная форма, как вы привели выше, а именно ТЧ.
20 ded20ded
 
16.01.13
23:08
DozaT, все делается в одной функции скинул ранее

в этот отчет попадает все ценами и суммами


// Функция формирует табличный документ с печатной формой накладной,
// разработанной методистами
//
// Возвращаемое значение:
//  Табличный документ - печатная форма накладной
//
Функция ПечатьСписаниеТоваров()
   
   ПараметрыПечати = ПолучитьДанныеДляПечатиСписанияТоваров();

   Если ПараметрыПечати.ЭтоСкладНТТ Тогда
       ИмяШапки         = "ШапкаТаблицы";
       ИмяСтроки        = "Строка";
   Иначе
       ИмяШапки         = "ШапкаТаблицыНТТ";
       ИмяСтроки        = "СтрокаНТТ";
   КонецЕсли;

   ТабДокумент = Новый ТабличныйДокумент;
   ТабДокумент.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_СписаниеТоваров_Накладная";

   Макет = ПолучитьМакет("Накладная");

   // Выводим шапку накладной
   ОбластьМакета = Макет.ПолучитьОбласть("Заголовок");
   ОбластьМакета.Параметры.Заполнить(ПараметрыПечати);
   ТабДокумент.Вывести(ОбластьМакета);

   ОбластьМакета = Макет.ПолучитьОбласть("РевизитыОрганизации");
   ОбластьМакета.Параметры.Заполнить(ПараметрыПечати);
   ТабДокумент.Вывести(ОбластьМакета);

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

   ТабДокумент.Вывести(ОбластьНомера);
   Если ПараметрыПечати.ВыводитьКоды Тогда
       ОбластьКодов.Параметры.Заполнить(ПараметрыПечати);
       ТабДокумент.Присоединить(ОбластьКодов);
   КонецЕсли;
   ТабДокумент.Присоединить(ОбластьТовар);
   ОбластьКолонкаТовар = Макет.Область("Товар");
   Если ПараметрыПечати.ВыводитьКоды Тогда
       ОбластьКолонкаТовар.ШиринаКолонки = ОбластьКолонкаТовар.ШиринаКолонки
                                           + ?(ПараметрыПечати.ФлагПечатиМест, 0, Макет.Область("R14C5").ШиринаКолонки + Макет.Область("R14C6").ШиринаКолонки);
   Иначе
       ОбластьКолонкаТовар.ШиринаКолонки = ОбластьКолонкаТовар.ШиринаКолонки
                                           + Макет.Область("КолонкаКодов").ШиринаКолонки
                                           + ?(ПараметрыПечати.ФлагПечатиМест, 0, Макет.Область("R14C5").ШиринаКолонки + Макет.Область("R14C6").ШиринаКолонки);
   КонецЕсли;
   Если ПараметрыПечати.ФлагПечатиМест Тогда
       ТабДокумент.Присоединить(ОбластьМест);
   КонецЕсли;
   ТабДокумент.Присоединить(ОбластьДанных);

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

   СуммаИтого = 0;
   Ном        = 0;

   // Товары и тара
   Для каждого ПараметрыПозиции Из ПараметрыПечати.Позиции Цикл

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

       ОбластьНомера.Параметры.Заполнить(ПараметрыПозиции);
       ТабДокумент.Вывести(ОбластьНомера);

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

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

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

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

   КонецЦикла;

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

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

   // Вывести Сумму прописью
   ОбластьМакета = Макет.ПолучитьОбласть("СуммаПрописью");
   ОбластьМакета.Параметры.Заполнить(ПараметрыПечати);
   ТабДокумент.Вывести(ОбластьМакета);

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

   Возврат ТабДокумент;

КонецФункции // ПечатьСписаниеТоваров()
21 DozaT
 
16.01.13
23:11
код этой функции скиньте
ПараметрыПечати = ПолучитьДанныеДляПечатиСписанияТоваров();
22 DozaT
 
16.01.13
23:16
и эта функция что печатает? Акт списания?
23 DozaT
 
16.01.13
23:19
ну что там? еще 5 минут и спать
24 ded20ded
 
16.01.13
23:21
// Функция помещает в структуру все данные, отображаемые при печати документа.
// Вызывается из функции ПечатьСписаниеТоваров и из веб-приложения
//
// Возвращаемое значение:
//  Структура
//
Функция ПолучитьДанныеДляПечатиСписанияТоваров() Экспорт
   
   ПараметрыПечати = Новый Структура;
   
   Запрос = Новый Запрос;
   Запрос.УстановитьПараметр("ТекущийДокумент", ЭтотОбъект.Ссылка);
   Запрос.УстановитьПараметр("ВидСкладаНТТ",    Перечисления.ВидыСкладов.НТТ);

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

   ПараметрыПечати.Вставить("ЭтоСкладНТТ", (ПолучитьТекущийВидСклада() = Перечисления.ВидыСкладов.НТТ));

   Если ПараметрыПечати.ЭтоСкладНТТ Тогда
       ВалютаПечати = мВалютаРегламентированногоУчета;
   Иначе        
       ВалютаПечати = глЗначениеПеременной("ВалютаУправленческогоУчета");
       ТаблицаСтоимости = ПолучитьТаблицуСтоимостиТоваров();
       ТаблицаСтоимости.Индексы.Добавить("Номенклатура,Характеристика,Серия,Качество");
   КонецЕсли;

   Шапка = Запрос.Выполнить().Выбрать();
   Шапка.Следующий();
   ВыборкаСтрокТовары = Шапка.Товары.Выбрать();
   ВыборкаСтрокТара   = Шапка.ВозвратнаяТара.Выбрать();

   // Выводим шапку накладной
   ПараметрыПечати.Вставить("ТекстЗаголовка", ОбщегоНазначения.СформироватьЗаголовокДокумента(Шапка, "Списание товаров"));

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

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

   ПараметрыПечати.Вставить("ФлагПечатиМест", (Товары.Итог("КоличествоМест") > 0));
   
   Позиции = Новый Массив;
   СуммаИтого = 0;
   Ном        = 0;

   // Товары
   Пока ВыборкаСтрокТовары.Следующий() Цикл
       
       ПараметрыПозиции = Новый Структура;
       ПараметрыПозиции.Вставить("Номенклатура", ВыборкаСтрокТовары.Номенклатура);        

       Ном = Ном + 1;

       ПараметрыПозиции.Вставить("НомерСтроки", Ном);

       Если ПараметрыПечати.ВыводитьКоды Тогда
           Если ПараметрыПечати.ИмяКолонкиКодов = "Артикул" Тогда
               ПараметрыПозиции.Вставить("Артикул", ВыборкаСтрокТовары.Артикул);
           Иначе
               ПараметрыПозиции.Вставить("Артикул", ВыборкаСтрокТовары.Код);
           КонецЕсли;
       КонецЕсли;

       ПараметрыПозиции.Вставить("Товар", ВыборкаСтрокТовары.Товар + ФормированиеПечатныхФорм.ПредставлениеСерий(ВыборкаСтрокТовары));

       Если ПараметрыПечати.ФлагПечатиМест Тогда
           ПараметрыПозиции.Вставить("КоличествоМест", ВыборкаСтрокТовары.КоличествоМест);
           ПараметрыПозиции.Вставить("ЕдиницаИзмеренияМест", ВыборкаСтрокТовары.ЕдиницаИзмеренияМест);
       КонецЕсли;
       
       ПараметрыПозиции.Вставить("Количество", ВыборкаСтрокТовары.Количество);
       ПараметрыПозиции.Вставить("ЕдиницаИзмерения", ВыборкаСтрокТовары.ЕдиницаИзмерения);
       ПараметрыПозиции.Вставить("Цена", ВыборкаСтрокТовары.Цена);
       ПараметрыПозиции.Вставить("Сумма", ВыборкаСтрокТовары.Сумма);
       Если ПараметрыПечати.ЭтоСкладНТТ Тогда
           Сумма = ВыборкаСтрокТовары.Сумма;
       Иначе
           Сумма = ПолучитьСтоимостьТовара(ТаблицаСтоимости, ВыборкаСтрокТовары);

           ПараметрыПозиции.Сумма = Сумма;
       КонецЕсли;

       СуммаИтого = СуммаИтого + Сумма;
       
       #Если ВнешнееСоединение Тогда
       WEBПриложения.ПодготовитьСтруктуруДляВнешнегоСоединения(ПараметрыПозиции);
       #КонецЕсли

       Позиции.Добавить(ПараметрыПозиции);
       
   КонецЦикла;

   // Тара
   Пока ВыборкаСтрокТара.Следующий() Цикл

       ПараметрыПозиции = Новый Структура;
       ПараметрыПозиции.Вставить("Номенклатура", ВыборкаСтрокТара.Номенклатура);        

       Ном = Ном + 1;

       ПараметрыПозиции.Вставить("НомерСтроки", Ном);

       Если ПараметрыПечати.ВыводитьКоды Тогда
           Если ПараметрыПечати.ИмяКолонкиКодов = "Артикул" Тогда
               ПараметрыПозиции.Вставить("Артикул", ВыборкаСтрокТара.Артикул);
           Иначе
               ПараметрыПозиции.Вставить("Артикул", ВыборкаСтрокТара.Код);
           КонецЕсли;
       КонецЕсли;

       ПараметрыПозиции.Вставить("Товар", ВыборкаСтрокТара.Товар + " (возвратная тара)");

       Если ПараметрыПечати.ФлагПечатиМест Тогда
           ПараметрыПозиции.Вставить("КоличествоМест", 0);
           ПараметрыПозиции.Вставить("ЕдиницаИзмеренияМест", Справочники.ЕдиницыИзмерения.ПустаяСсылка());
       КонецЕсли;

       ПараметрыПозиции.Вставить("Количество", ВыборкаСтрокТара.Количество);
       ПараметрыПозиции.Вставить("ЕдиницаИзмерения", ВыборкаСтрокТара.ЕдиницаИзмерения);
       ПараметрыПозиции.Вставить("Цена", ВыборкаСтрокТара.Цена);
       ПараметрыПозиции.Вставить("Сумма", ВыборкаСтрокТара.Сумма);
       
       Если ПараметрыПечати.ЭтоСкладНТТ Тогда
           Сумма = ВыборкаСтрокТара.Сумма;
       Иначе
           Сумма = ПолучитьСтоимостьТовара(ТаблицаСтоимости, ВыборкаСтрокТара);

           ПараметрыПозиции.Сумма = Сумма;
       КонецЕсли;

       СуммаИтого = СуммаИтого + Сумма;
       
       #Если ВнешнееСоединение Тогда
       WEBПриложения.ПодготовитьСтруктуруДляВнешнегоСоединения(ПараметрыПозиции);
       #КонецЕсли

       Позиции.Добавить(ПараметрыПозиции);

   КонецЦикла;
   
   ПараметрыПечати.Вставить("Позиции", Позиции);

   ПараметрыПечати.Вставить("Всего", ОбщегоНазначения.ФорматСумм(СуммаИтого));

   // Вывести Сумму прописью
   ПараметрыПечати.Вставить("ИтоговаяСтрока", "Всего наименований " + Ном
                                          + ", на сумму " + ОбщегоНазначения.ФорматСумм(СуммаИтого, ВалютаПечати));
   ПараметрыПечати.Вставить("СуммаПрописью", ОбщегоНазначения.СформироватьСуммуПрописью(СуммаИтого, ВалютаПечати));
   
   #Если ВнешнееСоединение Тогда
   WEBПриложения.ПодготовитьСтруктуруДляВнешнегоСоединения(ПараметрыПечати);
   #КонецЕсли
   
   Возврат ПараметрыПечати;

КонецФункции //ПолучитьДанныеДляПечатиСписанияТоваров()
25 ded20ded
 
16.01.13
23:21
успел?
26 DozaT
 
16.01.13
23:22
да
27 ded20ded
 
16.01.13
23:23
(20) акт списания (8) Торг16
28 DozaT
 
16.01.13
23:25
такс. а в самой ТЧ документа колонка цена заполнена?
29 ded20ded
 
16.01.13
23:26
// Возвращает стоимость товара
//
Функция ПолучитьСтоимостьТовара(Таблица, ТекСтрока)

   СтруктураПоиска = Новый Структура;
   СтруктураПоиска.Вставить("Номенклатура",   ТекСтрока.Номенклатура);
   СтруктураПоиска.Вставить("Характеристика", ТекСтрока.Характеристика);
   Если ТекСтрока.ВестиПартионныйУчетПоСериям Тогда
       СтруктураПоиска.Вставить("Серия", ТекСтрока.Серия);
   Иначе
       СтруктураПоиска.Вставить("Серия", Справочники.СерииНоменклатуры.ПустаяСсылка());
   КонецЕсли;
   СтруктураПоиска.Вставить("Качество", ТекСтрока.Качество);
       
   НаборСтрок = Таблица.НайтиСтроки(СтруктураПоиска);
   КолСписать = ТекСтрока.Количество;
   Стоимость  = 0;

   Для Каждого Строка Из НаборСтрок Цикл
       Если КолСписать >= Строка.Количество Тогда
           Стоимость         = Стоимость  + Строка.Стоимость;
           КолСписать        = КолСписать - Строка.Количество;
           Строка.Стоимость  = 0;
           Строка.Количество = 0;
       Иначе
           Если Не Строка.Количество = 0 Тогда
               СумСписать        = Окр(Строка.Стоимость * КолСписать / Строка.Количество * ТекСтрока.Коэффициент, 2, 1);
               Стоимость         = Стоимость + СумСписать;
               Строка.Стоимость  = Строка.Стоимость  - СумСписать;
               Строка.Количество = Строка.Количество - КолСписать;
           Иначе
               Стоимость        = Стоимость + Строка.Стоимость;
               Строка.Стоимость = 0;
           КонецЕсли;
       КонецЕсли;
   КонецЦикла;

   Возврат Стоимость;

КонецФункции // ПолучитьСтоимостьПоПартиямТоваров()
30 ded20ded
 
16.01.13
23:26
да заполнена но она не видема
31 ded20ded
 
16.01.13
23:26
с (20) печать идет
32 ded20ded
 
16.01.13
23:26
с ценой
33 ded20ded
 
16.01.13
23:28
ладно DozaT, спасибо за помощь завтра тему пну, у самого голова уже не варит
34 DozaT
 
16.01.13
23:29
посмотрите в макете эту область "СтрокаПервогоЛиста"
есть ли там параметр Цена
35 DozaT
 
16.01.13
23:30
макет ТОРГ16
36 DozaT
 
16.01.13
23:31
должно выглядеть так <Цена>
37 ded20ded
 
16.01.13
23:31
есть цена в макете он только в общих лежит
38 ded20ded
 
16.01.13
23:32
только она Цена в СтрокаВторогоЛиста
39 DozaT
 
16.01.13
23:32
вот)
40 ded20ded
 
16.01.13
23:34
тут собака где изменить?
41 ded20ded
 
16.01.13
23:36
// Выводим многострочную часть докмента
   ОбластьМакета = Макет.ПолучитьОбласть("СтрокаВторогоЛиста");

   // Товары
   ВыборкаСтрокТовары = Шапка.Товары.Выбрать();
   Пока ВыборкаСтрокТовары.Следующий() Цикл
42 ded20ded
 
16.01.13
23:38
тут вроде все верно
   // Выводим многострочную часть докмента
   ОбластьМакета = Макет.ПолучитьОбласть("СтрокаВторогоЛиста");

   // Товары
   ВыборкаСтрокТовары = Шапка.Товары.Выбрать();
   Пока ВыборкаСтрокТовары.Следующий() Цикл

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

       Ном = Ном + 1;

       //Начинаем новую страницу, если предыдущая строка была последней на странице
       //или пора переносить последнюю строку на последнюю страницу с подвалом.
       ЦелаяСтраница = (СтрокШапки + Ном - 1) / СтрокНаСтранице;
       
       Если (ЦелаяСтраница = Цел(ЦелаяСтраница))
        или ((ПереноситьПоследнююСтроку = 1) и (Ном = КоличествоСтрок)) Тогда

           ИтогоСтоимостьПоСтранице = 0;
           НомерСтраницы            = НомерСтраницы + 1;
           ТабДокумент.ВывестиГоризонтальныйРазделительСтраниц();
           ЗаголовокТаблицы.Параметры.НомерСтраницы = "Страница " + НомерСтраницы;
           ТабДокумент.Вывести(ЗаголовокТаблицы);
       КонецЕсли;
   
       ОбластьМакета.Параметры.Заполнить(ВыборкаСтрокТовары);

       КоличествоМест = Формат(ВыборкаСтрокТовары.Количество, "ЧЦ=15; ЧДЦ=3");

       Если ВыборкаСтрокТовары.КоличествоМест <> 0 И ЗначениеЗаполнено(ВыборкаСтрокТовары.ЕдиницаИзмеренияМестНаименование) Тогда
           КоличествоМест = КоличествоМест
                            + Символы.ПС
                            + " (" + Формат(ВыборкаСтрокТовары.КоличествоМест,"ЧЦ=15; ЧДЦ=0")
                            + " "
                            + ВыборкаСтрокТовары.ЕдиницаИзмеренияМестНаименование
                            + ")";
       КонецЕсли;

       ОбластьМакета.Параметры.КоличествоМест    = КоличествоМест;
       ОбластьМакета.Параметры.ТоварНаименование = ВыборкаСтрокТовары.ТоварНаименование + ФормированиеПечатныхФорм.ПредставлениеСерий(ВыборкаСтрокТовары);
       МассаНетто                                = ВыборкаСтрокТовары.МассаОдногоМеста * ВыборкаСтрокТовары.КоличествоМест;
       ОбластьМакета.Параметры.МассаНетто        = МассаНетто;

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



только вот цену ни как не могу понять где выводят
43 ded20ded
 
16.01.13
23:41
ВыборкаСтрокТовары.Стоимость и ВыборкаСтрокТовары.Цена в отладчике возращает 0
44 DozaT
 
16.01.13
23:45
Шапка = Запрос.Выполнить().Выбрать();
   поставьте здесь точку останова. а лучше добавьте здесь строчку
результатТЗ = Запрос.Выполнить().Выгрузить()
45 DozaT
 
16.01.13
23:46
да выводится цена. что-то с результатом запроса. на этой строцке посмотрите, таблицузначений. заполнена ли там цена
46 DozaT
 
16.01.13
23:47
на выгрузить тоску останова поставьте
47 DozaT
 
16.01.13
23:49
все я спать. сегодня позже зайду
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший