Форум программистов, компьютерный форум, киберфорум
Наши страницы
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.83/86: Рейтинг темы: голосов - 86, средняя оценка - 4.83
RZX
0 / 0 / 0
Регистрация: 30.10.2009
Сообщений: 29
1

1с 8.2: Разбивает Строки В Печатной Форме Накладной

21.11.2011, 13:48. Просмотров 15699. Ответов 3
Метки нет (Все метки)

Добрый день!

Нужна помощь профессионалов по такому вопросу:

Платформа 1С:Предприятие 8.2 релиз 8.2.12.80
Конфигурация Управление Торговлей для Беларуси 2.0 релиз 2.0.19.2

В документе РеализацияТоваровУслуг в печатной форме накладной ТТН-1 выртикальной бывает, что некоторые позиции разбиваются на две, т.е. в документе может быть 4-е строки, а в печатной форме 5, причем количество и сумма товаров в документе и печатной форме совпадают.

Например в документе так:

Товар Количество Цена Сумма
Наименование 1 3400 шт. 1,15 3910,00
Наименование 2 1740 шт. 1,20 2088,00
Наименование 3 1170 шт. 0,52 608,40
Наименование 4 2000 шт. 1,90 3800,00

А в печатной форме накладной этого же документа так:
Товар Количество Цена Сумма
Наименование 1 3400 шт. 1,15 3910,00
Наименование 2 1740 шт. 1,20 2088,00
Наименование 3 1170 шт. 0,52 608,40
Наименование 4 368 шт. 1,90 699,20
Наименование 4 1632 шт. 1,90 3100,80

Т.е. в сумме как бы все нормально, но в печатной форме - бред какой-то. Причем товары не разбиты на партии,
коэффициент везде 1, в настройках грузомест тоже ничего не указано.
С чем это связано???

Хотя иногда выдает правильно:
Если в документе так:

Товар Количество Цена Сумма
Наименование 1 3400 шт. 1,15 3910,00
Наименование 2 1740 шт. 1,20 2088,00
Наименование 3 1170 шт. 0,52 608,40
Наименование 4 500 шт. 1,90 950,00

то в печатной форме тоже все нормально.

В функции печати вначале есть строки:


Код ( (Unknown Language)):
Функция ПечатьТТН_1(ВертикальнаяФорма = Ложь, СПриложением = Ложь)
....
ТаблицаТоваров = ПолучитьТаблицуДанныхТабличныхЧастейДляНакладных();
КоличествоСтрок = ТаблицаТоваров.Количество();

...

КонецФункции
И в первом случае (когда разбиваются позиции) КоличествоСтрок почему-то равно 5, а не 4.
Насколько я понял, то ошибка где-то в функции ПолучитьТаблицуДанныхТабличныхЧастейДляНакладных() - в ней выполняется запрос к табличной части документа.

Вот ее код:


Код ( (Unknown Language)):
Функция ПолучитьТаблицуДанныхТабличныхЧастейДляНакладных()

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

НоменклатурнаяГруппа,
| ВЫБОР
| КОГДА

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

ЧИСЛО(15, 0))) КАК КоличествоВОдномМесте,
| СУММА(ВЫРАЗИТЬ(Реализация.КоличествоМест / Реализация.Количество * ПартииТоваров.Количество

КАК ЧИСЛО(15, 0))) КАК КоличествоМест,
| СУММА(ВЫБОР
| КОГДА Реализация.КоличествоМест > 0
| ТОГДА ВЫРАЗИТЬ(Реализация.КоличествоМест / Реализация.Количество *

ПартииТоваров.Количество / Реализация.Количество * ПартииТоваров.Количество / Реализация.Коэффициент *

Реализация.Номенклатура.ЕдиницаХраненияОстатков.Коэффициент * Реализация.ЕдиницаИзмеренияМест.Вес / 1000 КАК

ЧИСЛО(15, 3))
| ИНАЧЕ ВЫРАЗИТЬ(ПартииТоваров.Количество / Реализация.Коэффициент *

Реализация.Номенклатура.ЕдиницаХраненияОстатков.Коэффициент * Реализация.ЕдиницаИзмерения.Вес / 1000 КАК ЧИСЛО(15,

3))
| КОНЕЦ) КАК МассаБрутто,
| Реализация.СтавкаНДС КАК СтавкаНДС,
| Реализация.Цена КАК Цена,
| СУММА(ВЫРАЗИТЬ(Реализация.Сумма / Реализация.Количество *

Реализация.ЕдиницаИзмерения.Коэффициент / Реализация.Номенклатура.ЕдиницаХраненияОстатков.Коэффициент *

ПартииТоваров.Количество КАК ЧИСЛО(15, 2))) КАК Сумма,
| СУММА(ВЫРАЗИТЬ(Реализация.СуммаНДС / Реализация.Количество *

Реализация.ЕдиницаИзмерения.Коэффициент / Реализация.Номенклатура.ЕдиницаХраненияОстатков.Коэффициент *

ПартииТоваров.Количество КАК ЧИСЛО(15, 2))) КАК СуммаНДС,
| СУММА(ПартииТоваров.Количество) КАК Количество,
| ВЫБОР
| КОГДА

Реализация.Ссылка.ДоговорКонтрагента.ИспользоватьЦенуИмпортераИзготовителяДокуме
нта
| ТОГДА Реализация.ЦенаИмпортераИзготовителя
| ИНАЧЕ ПартииТоваров.ЦенаИмпортераИзготовителя
| КОНЕЦ КАК ЦенаИмпортераИзготовителя,
| Реализация.Ссылка КАК Реализация,
| ПартииТоваров.ДокументОприходования КАК ДокументОприходования,
| Реализация.ХарактеристикаНоменклатуры КАК ХарактеристикаНоменклатуры,
| Реализация.СерияНоменклатуры КАК СерияНоменклатуры,
| Реализация.СтавкаНП КАК СтавкаНП,
| СУММА(ВЫРАЗИТЬ(Реализация.СуммаНП / Реализация.Количество *

Реализация.ЕдиницаИзмерения.Коэффициент / Реализация.Номенклатура.ЕдиницаХраненияОстатков.Коэффициент *

ПартииТоваров.Количество КАК ЧИСЛО(15, 2))) КАК СуммаНП,
| Реализация.НомерСтроки КАК НомерСтроки,
| Реализация.ЦенаСоСкидкой КАК ЦенаСоСкидкой,
| ЕСТЬNULL(Реализация.ПроцентАвтоматическихСкидок, 0) +

ЕСТЬNULL(Реализация.ПроцентСкидкиНаценки, 0) КАК ПроцентСкидкиНаценки
| ИЗ
| РегистрНакопления.ПартииТоваровНаСкладах КАК ПартииТоваров
| ЛЕВОЕ СОЕДИНЕНИЕ Документ.РеализацияТоваровУслуг.Товары КАК Реализация
| ПО ПартииТоваров.НомерСтрокиДокумента = Реализация.НомерСтроки
| ГДЕ
| Реализация.Ссылка = &Ссылка
| И ПартииТоваров.Регистратор = &Ссылка
| И ПартииТоваров.ВидДвижения = ЗНАЧЕНИЕ(ВидДвиженияНакопления.Расход)
|
| СГРУППИРОВАТЬ ПО
| Реализация.СтавкаНДС,
| Реализация.ЕдиницаИзмеренияМест.Представление,
| Реализация.Номенклатура,
| Реализация.Номенклатура.ПредприятиеИзготовитель.Представление,
| Реализация.ЕдиницаИзмерения,
| Реализация.Цена,
| ПартииТоваров.ЦенаИмпортераИзготовителя,
| Реализация.Ссылка,
| ПартииТоваров.ДокументОприходования,
| Реализация.СерияНоменклатуры,
| Реализация.ХарактеристикаНоменклатуры,
| ВЫБОР
| КОГДА

Реализация.Ссылка.ДоговорКонтрагента.ИспользоватьЦенуИмпортераИзготовителяДокуме
нта
| ТОГДА Реализация.ЦенаИмпортераИзготовителя
| ИНАЧЕ ПартииТоваров.ЦенаИмпортераИзготовителя
| КОНЕЦ,
| Реализация.СтавкаНП,
| Реализация.НомерСтроки,
| Реализация.ЦенаСоСкидкой,
| ЕСТЬNULL(Реализация.ПроцентАвтоматическихСкидок, 0) +

ЕСТЬNULL(Реализация.ПроцентСкидкиНаценки, 0)) КАК ВложенныйЗапрос
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ПрейскурантПартии.СрезПоследних(
| &МоментДокумента,
| ТипЦен = &ТипЦенДокумента
| И ЦельПриобретенияТовара = &ЦельПриобретенияДокумента) КАК

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


Запрос.УстановитьПараметр("Ссылка", Ссылка);
Запрос.УстановитьПараметр("МоментДокумента", Новый МоментВремени(Ссылка.Дата, Ссылка));
Запрос.УстановитьПараметр("ТипЦенДокумента", Ссылка.ТипЦен);
Запрос.УстановитьПараметр("ЦельПриобретенияДокумента", Ссылка.ЦельПриобретения);

Возврат Запрос.Выполнить().Выгрузить();

КонецФункции
Поэтому такой вопрос: как понять, где ошибка? На каком основании этот запрос возвращает 5 строк, а не 4 и разбивает позиции в накладной?

Спасибо!
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.11.2011, 13:48
Ответы с готовыми решениями:

Как упорядочить строки в печатной форме
Здравствуйте, подскажите как сделать печатную форму накладной. Строки в печатной форме по выбору...

Бонусы в печатной форме расходной накладной УТ 11
Здравствуйте! Стоит задача, клиентам которые заказали товара на определенную сумму, выдавать бонусы...

Автовысота строки в печатной форме
Подскажите, как настроить автовысоту в печатной форме, чтобы высота была разной в каждой строке (в...

Авто-высота строки в печатной форме
Имеется УТ 11.1, я в ней меняю печатную форму ТОРГ-12 на предмет бОльшего количества товарных...

Как получить доступ к элементу на форме приходной накладной
Собственно сабж. тобиш я создаю новый документ - приходную накладную и в ней нужно поменять тип...

3
puh14
0 / 0 / 0
Регистрация: 07.07.2008
Сообщений: 1,401
21.11.2011, 14:24 2
Как вы сами видите в запросе используется регистр ПартииТоваровНаСкладах, а это значит что хоть партии ине выбраны, но списание происходит именно по партиям. Это связано с тем, что для определения прибыли нужно вычесть себестоимость из суммы проданного. А откуда её взять? правильно, из регистра партиитоваровнаскладах. А как списывать партии? а как записано в учетной политике fifo/lifo. А что будет если нет достаточного количества одной партии? Списать несколько. Вот вам и несколько строчек. Более подробно кто-сколько списал можно посмотреть выведя движения реализации по регистру партии товаров на складах.
0
RZX
0 / 0 / 0
Регистрация: 30.10.2009
Сообщений: 29
22.11.2011, 00:55 3
Да, действительно! В регистре ПартииТоваровНаСкладах идет именно так, как в печатной форме накладной - т.е. разбивает позицию на две строки. В учетной политике выставил метод списания LIFO (в нашем случае это не принципиально) и стало все OK!

Огромное спасибо за помощь!
0
RZX
0 / 0 / 0
Регистрация: 30.10.2009
Сообщений: 29
29.11.2011, 05:14 4
На случай, если еще кто столкнется с такой ситуацией: на самом деле не важно, что выставлять: FIFO/LIFO/По среднему. Главное - снять флаг в параметрах -> учетная политика "Вести учет по партиям" и не забыть перепровести документы поступления. Если последнего не сделать - все равно будет разбивать, даже если флаг снят.
0
29.11.2011, 05:14
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.11.2011, 05:14

TMemo разбивает строки
Такая проблема есть, тулза обрабатывает G-код, и в общем при его открытии, так-как нету...

По печатной форме
Добрый день! Есть вот такой код: ЗапросПоТоварам1 = Новый Запрос();...

Кнопки на печатной форме
Доброе утро! Конфигурация 1С8 УТ 11.2. нетиповая. Создала в нетиповую печатную форму для...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.