Добавление реквизита в шаблон Этикетки УТ11.4
Добрый день, возникла необходимость добавить в макет этикетки поля Цена со скидкой - 10%, пытался разобраться с СКД в 11.4, в конфигураторе нашел обработку ПечатьЭтикетоИЦенников который для печати этикеток в моем случае использует два СКД - ПоляШаблонаТовары
и
ПоляШаблонаПечатьТовары который выглядит вот так
пытался добавить поле
ИсходныеДанныеПоследнийЗапрос.Цена - (ИсходныеДанныеПоследнийЗапрос.Цена * 0.1) КАК ЦенаСоСкидкой
но СКД ругается на невозможность проведения каких либо операций с этими полями
Помогите пожалуйста разобраться
Спасибо.
ВЫБРАТЬ РАЗЛИЧНЫЕ
Сегменты.Номенклатура,
Сегменты.Характеристика,
ИСТИНА КАК ИспользуетсяОтборПоСегментуНоменклатуры
ПОМЕСТИТЬ ОтборПоСегментуНоменклатуры
ИЗ
РегистрСведений.НоменклатураСегмента КАК Сегменты
{ГДЕ
Сегменты.Сегмент.* КАК СегментНоменклатуры,
Сегменты.Номенклатура.* КАК Номенклатура,
Сегменты.Характеристика.* КАК Характеристика}
ИНДЕКСИРОВАТЬ ПО
Сегменты.Номенклатура,
Сегменты.Характеристика,
ИспользуетсяОтборПоСегментуНоменклатуры
;
//////////////////////////////////////////////////////////// ////////////////////
ВЫБРАТЬ
ИсходныеДанные.Номенклатура КАК Номенклатура,
ИсходныеДанные.Характеристика КАК Характеристика,
ИсходныеДанные.Упаковка КАК Упаковка,
ИсходныеДанные.Количество КАК Количество,
ИсходныеДанные.Порядок КАК Порядок,
"КоличествоЦенников" КАК КоличествоЦенников,
"КоличествоЭтикеток" КАК КоличествоЭтикеток,
"ШаблонЭтикетки" КАК ШаблонЭтикетки,
"ШаблонЦенника" КАК ШаблонЦенника
ПОМЕСТИТЬ ИсходныеДанные
ИЗ
(ВЫБРАТЬ
ЗНАЧЕНИЕ(Справочник.Номенклатура.ПустаяСсылка) КАК Номенклатура,
ЗНАЧЕНИЕ(Справочник.ХарактеристикиНоменклатуры.ПустаяСсылка) КАК Характеристика,
ЗНАЧЕНИЕ(Справочник.УпаковкиЕдиницыИзмерения.ПустаяСсылка) КАК Упаковка,
0 КАК Порядок,
0 КАК Количество) КАК ИсходныеДанные
ИНДЕКСИРОВАТЬ ПО
Номенклатура,
Характеристика,
Упаковка
;
//////////////////////////////////////////////////////////// ////////////////////
ВЫБРАТЬ РАЗЛИЧНЫЕ
УпаковкиНоменклатуры.Ссылка КАК Упаковка,
ИсходныеДанные.Номенклатура КАК Номенклатура,
&ТекстЗапросаКоэффициентУпаковки1 КАК Коэффициент,
УпаковкиНоменклатуры.ЕдиницаИзмерения КАК ЕдиницаИзмерения,
ИсходныеДанные.Номенклатура.ЕдиницаИзмерения КАК ЕдиницаИзмеренияНоменклатуры
ПОМЕСТИТЬ ЕдиничныеУпаковкиВладельцы
ИЗ
ИсходныеДанные КАК ИсходныеДанные
ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.УпаковкиЕдиницыИзмерения КАК УпаковкиНоменклатуры
ПО (1 = &ТекстЗапросаКоэффициентУпаковки1)
И (ИсходныеДанные.Номенклатура.НаборУпаковок = ЗНАЧЕНИЕ(Справочник.НаборыУпаковок.ИндивидуальныйДляНоменклатуры)
И ИсходныеДанные.Номенклатура = УпаковкиНоменклатуры.Владелец
ИЛИ ИсходныеДанные.Номенклатура.НаборУпаковок <> ЗНАЧЕНИЕ(Справочник.НаборыУпаковок.ИндивидуальныйДляНоменклатуры)
И ИсходныеДанные.Номенклатура.НаборУпаковок = УпаковкиНоменклатуры.Владелец)
И ИсходныеДанные.Номенклатура.ЕдиницаИзмерения = УпаковкиНоменклатуры.ЕдиницаИзмерения
И (НЕ УпаковкиНоменклатуры.ПометкаУдаления)
И (ИсходныеДанные.Упаковка = ЗНАЧЕНИЕ(Справочник.УпаковкиЕдиницыИзмерения.ПустаяСсылка))
;
//////////////////////////////////////////////////////////// ////////////////////
ВЫБРАТЬ
СУММА(ВЫБОР
КОГДА ЕдиничныеУпаковкиВладельцы.Коэффициент = 1
И ЕдиничныеУпаковкиВладельцы.ЕдиницаИзмерения = ЕдиничныеУпаковкиВладельцы.ЕдиницаИзмеренияНоменклатуры
ТОГДА 1
ИНАЧЕ 0
КОНЕЦ) КАК КоличествоЕдиничныхУпаковок,
ЕдиничныеУпаковкиВладельцы.Номенклатура
ПОМЕСТИТЬ ВладельцыЕдиничныеУпаковкиКоличество
ИЗ
ЕдиничныеУпаковкиВладельцы КАК ЕдиничныеУпаковкиВладельцы
СГРУППИРОВАТЬ ПО
ЕдиничныеУпаковкиВладельцы.Номенклатура
;
//////////////////////////////////////////////////////////// ////////////////////
ВЫБРАТЬ
ВЫБОР
КОГДА ВладельцыЕдиничныеУпаковкиКоличество.КоличествоЕдиничныхУпаковок = 1
ТОГДА ЕдиничныеУпаковкиВладельцы.Упаковка
ИНАЧЕ ЗНАЧЕНИЕ(Справочник.УпаковкиЕдиницыИзмерения.ПустаяСсылка)
КОНЕЦ КАК Упаковка,
ВладельцыЕдиничныеУпаковкиКоличество.Номенклатура,
ВЫБОР
КОГДА ВладельцыЕдиничныеУпаковкиКоличество.КоличествоЕдиничныхУпаковок > 1
ТОГДА ИСТИНА
ИНАЧЕ ЛОЖЬ
КОНЕЦ КАК НеОднаЕдиничнаяУпаковка
ПОМЕСТИТЬ ЕдиничныеУпаковкиНоменклатур
ИЗ
ВладельцыЕдиничныеУпаковкиКоличество КАК ВладельцыЕдиничныеУпаковкиКоличество
ЛЕВОЕ СОЕДИНЕНИЕ ЕдиничныеУпаковкиВладельцы КАК ЕдиничныеУпаковкиВладельцы
ПО ВладельцыЕдиничныеУпаковкиКоличество.Номенклатура = ЕдиничныеУпаковкиВладельцы.Номенклатура
;
//////////////////////////////////////////////////////////// ////////////////////
ВЫБРАТЬ РАЗЛИЧНЫЕ
ИсходныеДанные.Номенклатура КАК Номенклатура,
ИсходныеДанные.Характеристика КАК Характеристика,
ВЫБОР
КОГДА ИсходныеДанные.Упаковка <> ЗНАЧЕНИЕ(Справочник.УпаковкиЕдиницыИзмерения.ПустаяСсылка)
ТОГДА ИсходныеДанные.Упаковка
ИНАЧЕ ВЫБОР
КОГДА ЕдиничныеУпаковкиНоменклатур.Упаковка ЕСТЬ NULL
ТОГДА ЗНАЧЕНИЕ(Справочник.УпаковкиЕдиницыИзмерения.ПустаяСсылка)
ИНАЧЕ ЕдиничныеУпаковкиНоменклатур.Упаковка
КОНЕЦ
КОНЕЦ КАК Упаковка,
ВЫБОР
КОГДА ИсходныеДанные.Упаковка <> ЗНАЧЕНИЕ(Справочник.УпаковкиЕдиницыИзмерения.ПустаяСсылка)
ТОГДА &ТекстЗапросаКоэффициентУпаковки3
ИНАЧЕ ВЫБОР
КОГДА ЕдиничныеУпаковкиНоменклатур.Упаковка ЕСТЬ NULL
ТОГДА 0
ИНАЧЕ &ТекстЗапросаКоэффициентУпаковки4
КОНЕЦ
КОНЕЦ КАК Коэффициент,
МИНИМУМ(ИсходныеДанные.Порядок) КАК Порядок,
СУММА(ИсходныеДанные.Количество) КАК Количество,
ЕСТЬNULL(ЕдиничныеУпаковкиНоменклатур.НеОднаЕдиничнаяУпаковка, ЛОЖЬ) КАК НеОднаЕдиничнаяУпаковка,
КОЛИЧЕСТВО("КоличествоЦенников") КАК КоличествоЦенниковДляПечати,
КОЛИЧЕСТВО("КоличествоЭтикеток") КАК КоличествоЭтикетокДляПечати,
МИНИМУМ("ШаблонЭтикетки") КАК ШаблонЭтикеткиДляПечати,
МИНИМУМ("ШаблонЦенника") КАК ШаблонЦенникаДляПечати
ПОМЕСТИТЬ ИсходныеДанныеРасширенные
ИЗ
ИсходныеДанные КАК ИсходныеДанные
ЛЕВОЕ СОЕДИНЕНИЕ ЕдиничныеУпаковкиНоменклатур КАК ЕдиничныеУпаковкиНоменклатур
ПО ИсходныеДанные.Номенклатура = ЕдиничныеУпаковкиНоменклатур.Номенклатура
СГРУППИРОВАТЬ ПО
ИсходныеДанные.Номенклатура,
ИсходныеДанные.Характеристика,
ВЫБОР
КОГДА ИсходныеДанные.Упаковка <> ЗНАЧЕНИЕ(Справочник.УпаковкиЕдиницыИзмерения.ПустаяСсылка)
ТОГДА ИсходныеДанные.Упаковка
ИНАЧЕ ВЫБОР
КОГДА ЕдиничныеУпаковкиНоменклатур.Упаковка ЕСТЬ NULL
ТОГДА ЗНАЧЕНИЕ(Справочник.УпаковкиЕдиницыИзмерения.ПустаяСсылка)
ИНАЧЕ ЕдиничныеУпаковкиНоменклатур.Упаковка
КОНЕЦ
КОНЕЦ,
ВЫБОР
КОГДА ИсходныеДанные.Упаковка <> ЗНАЧЕНИЕ(Справочник.УпаковкиЕдиницыИзмерения.ПустаяСсылка)
ТОГДА &ТекстЗапросаКоэффициентУпаковки3
ИНАЧЕ ВЫБОР
КОГДА ЕдиничныеУпаковкиНоменклатур.Упаковка ЕСТЬ NULL
ТОГДА 0
ИНАЧЕ &ТекстЗапросаКоэффициентУпаковки4
КОНЕЦ
КОНЕЦ,
ЕСТЬNULL(ЕдиничныеУпаковкиНоменклатур.НеОднаЕдиничнаяУпаковка, ЛОЖЬ)
;
//////////////////////////////////////////////////////////// ////////////////////
ВЫБРАТЬ
ИсходныеДанныеРасширенные.Номенклатура КАК Номенклатура,
ИсходныеДанныеРасширенные.Характеристика КАК Характеристика,
ИсходныеДанныеРасширенные.Упаковка КАК Упаковка,
ЕстьNULL(Штрихкоды.Штрихкод,"") КАК Штрихкод,
ВЫБОР
КОГДА ИсходныеДанныеРасширенные.Упаковка = Штрихкоды.Упаковка
ТОГДА 2
ИНАЧЕ 1
КОНЕЦ КАК ПриоритетШтрихКода
ПОМЕСТИТЬ Штрихкоды
ИЗ
ИсходныеДанныеРасширенные КАК ИсходныеДанныеРасширенные
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ШтрихкодыНоменклатуры КАК Штрихкоды
ПО ИсходныеДанныеРасширенные.Номенклатура = Штрихкоды.Номенклатура
И ИсходныеДанныеРасширенные.Характеристика = Штрихкоды.Характеристика
И (ИсходныеДанныеРасширенные.Упаковка = Штрихкоды.Упаковка
ИЛИ ИсходныеДанныеРасширенные.Коэффициент = 1
И ИсходныеДанныеРасширенные.Номенклатура.ЕдиницаИзмерения = ИсходныеДанныеРасширенные.Упаковка.ЕдиницаИзмерения
И Штрихкоды.Упаковка = ЗНАЧЕНИЕ(Справочник.УпаковкиЕдиницыИзмерения.ПустаяСсылка))
{ГДЕ
Штрихкоды.Номенклатура.*,
Штрихкоды.Характеристика.*,
Штрихкоды.Упаковка.*,
((Штрихкоды.Номенклатура, Штрихкоды.Характеристика) В
(ВЫБРАТЬ
ОтборПоСегментуНоменклатуры.Номенклатура,
ОтборПоСегментуНоменклатуры.Характеристика
ИЗ
ОтборПоСегментуНоменклатуры
ГДЕ
ОтборПоСегментуНоменклатуры.ИспользуетсяОтборПоСегментуНоменклатуры = &ИспользуетсяОтборПоСегментуНоменклатуры))}
;
//////////////////////////////////////////////////////////// ////////////////////
ВЫБРАТЬ
Штрихкоды.Номенклатура,
Штрихкоды.Характеристика,
Штрихкоды.Упаковка,
МАКСИМУМ(Штрихкоды.ПриоритетШтрихКода) КАК ПриоритетШтрихКода
ПОМЕСТИТЬ ВТПриоритетШтрихКода
ИЗ
Штрихкоды КАК Штрихкоды
СГРУППИРОВАТЬ ПО
Штрихкоды.Номенклатура,
Штрихкоды.Характеристика,
Штрихкоды.Упаковка
;
//////////////////////////////////////////////////////////// ////////////////////
ВЫБРАТЬ
Штрихкоды.Номенклатура КАК Номенклатура,
Штрихкоды.Характеристика КАК Характеристика,
Штрихкоды.Упаковка КАК Упаковка,
МАКСИМУМ(Штрихкоды.Штрихкод) КАК Штрихкод
ПОМЕСТИТЬ ШтрихкодыНоменклатуры
ИЗ
Штрихкоды КАК Штрихкоды
ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВТПриоритетШтрихКода КАК ВТПриоритетШтрихКода
ПО Штрихкоды.Номенклатура = ВТПриоритетШтрихКода.Номенклатура
И Штрихкоды.Характеристика = ВТПриоритетШтрихКода.Характеристика
И Штрихкоды.Упаковка = ВТПриоритетШтрихКода.Упаковка
И Штрихкоды.ПриоритетШтрихКода = ВТПриоритетШтрихКода.ПриоритетШтрихКода
{ГДЕ
Штрихкоды.Номенклатура.*,
Штрихкоды.Характеристика.*,
Штрихкоды.Упаковка.*}
СГРУППИРОВАТЬ ПО
Штрихкоды.Номенклатура,
Штрихкоды.Характеристика,
Штрихкоды.Упаковка
ИНДЕКСИРОВАТЬ ПО
Номенклатура,
Характеристика,
Упаковка
;
//////////////////////////////////////////////////////////// ////////////////////
ВЫБРАТЬ РАЗРЕШЕННЫЕ
ИсходныеДанныеПоследнийЗапрос.Порядок КАК Порядок,
ИсходныеДанныеПоследнийЗапрос.Номенклатура КАК Номенклатура,
ИсходныеДанныеПоследнийЗапрос.Характеристика КАК Характеристика,
ВЫБОР
КОГДА ИсходныеДанныеПоследнийЗапрос.Номенклатура.ИспользованиеХарактеристик = ЗНАЧЕНИЕ(Перечисление.ВариантыИспользованияХарактеристикНоменклатуры.ОбщиеДляВидаНоменклатуры)
ИЛИ ИсходныеДанныеПоследнийЗапрос.Номенклатура.ИспользованиеХарактеристик = ЗНАЧЕНИЕ(Перечисление.ВариантыИспользованияХарактеристикНоменклатуры.ИндивидуальныеДляНоменклатуры)
ИЛИ ИсходныеДанныеПоследнийЗапрос.Номенклатура.ИспользованиеХарактеристик = ЗНАЧЕНИЕ(Перечисление.ВариантыИспользованияХарактеристикНоменклатуры.ОбщиеСДругимВидомНоменклатуры)
ТОГДА ИСТИНА
ИНАЧЕ ЛОЖЬ
КОНЕЦ КАК ХарактеристикиИспользуются,
ИсходныеДанныеПоследнийЗапрос.Упаковка КАК Упаковка,
ВЫБОР
КОГДА ИсходныеДанныеПоследнийЗапрос.Упаковка = ЗНАЧЕНИЕ(Справочник.УпаковкиЕдиницыИзмерения.ПустаяСсылка)
ТОГДА ИсходныеДанныеПоследнийЗапрос.Номенклатура.ЕдиницаИзмерения
ИНАЧЕ ИсходныеДанныеПоследнийЗапрос.Упаковка
КОНЕЦ КАК УпаковкаЕдиницаИзмерения,
ВЫБОР
КОГДА ИсходныеДанныеПоследнийЗапрос.Упаковка = ЗНАЧЕНИЕ(Справочник.УпаковкиЕдиницыИзмерения.ПустаяСсылка)
ТОГДА ВЫБОР
КОГДА ИсходныеДанныеПоследнийЗапрос.Номенклатура.ЕдиницаИзмерения.ТипИзмеряемойВеличины = ЗНАЧЕНИЕ(Перечисление.ТипыИзмеряемыхВеличин.Вес)
ТОГДА ИСТИНА
ИНАЧЕ ЛОЖЬ
КОНЕЦ
ИНАЧЕ ВЫБОР
КОГДА ИсходныеДанныеПоследнийЗапрос.Упаковка.ЕдиницаИзмерения.ТипИзмеряемойВеличины = ЗНАЧЕНИЕ(Перечисление.ТипыИзмеряемыхВеличин.Вес)
ТОГДА ИСТИНА
ИНАЧЕ ЛОЖЬ
КОНЕЦ
КОНЕЦ КАК Весовой,
ИсходныеДанныеПоследнийЗапрос.Количество КАК Количество,
ИсходныеДанныеПоследнийЗапрос.КоличествоЦенниковДляПечати КАК КоличествоЦенниковДляПечати,
ИсходныеДанныеПоследнийЗапрос.КоличествоЭтикетокДляПечати КАК КоличествоЭтикетокДляПечати,
ИсходныеДанныеПоследнийЗапрос.ШаблонЭтикеткиДляПечати КАК ШаблонЭтикеткиДляПечати,
ИсходныеДанныеПоследнийЗапрос.ШаблонЦенникаДляПечати КАК ШаблонЦенникаДляПечати,
ШтрихкодыНоменклатуры.Штрихкод КАК Штрихкод,
КодыТоваровПодключаемогоОборудованияOffline.Код КАК КодПодключаемогоОборудованияOffline,
ВЫБОР КОГДА &ПравилоВыгрузкиВВесы ТОГДА КодыТоваровПодключаемогоОборудованияOffline.Код - &МаксимальныйКодВесовогоТовара
ИНАЧЕ КодыТоваровПодключаемогоОборудованияOffline.Код
КОНЕЦ КАК PLU,
ВидыЦен.Ссылка КАК ВидЦены,
ВидыЦенДополнительно.Ссылка КАК ВидЦеныДополнительно,
Организации.Ссылка КАК Организация,
ЦеныНоменклатурыСрезПоследних.Цена КАК Цена,
ЦеныНоменклатурыСрезПоследних.Период КАК ДатаПоследнегоИзмененияЦены,
ЦеныНоменклатурыСрезПоследнихДополнительно.Цена КАК ЦенаДополнительно,
ЦеныНоменклатурыСрезПоследнихДополнительно.Период КАК ДатаПоследнегоИзмененияЦеныДополнительно,
ТоварыНаСкладахОстатки.ВНаличииОстаток КАК ОстатокНаСкладе,
&ТекущееВремя КАК ТекущееВремя,
Пользователи.Ссылка КАК ТекущийПользователь,
ИсходныеДанныеПоследнийЗапрос.НеОднаЕдиничнаяУпаковка,
ВЫБОР
КОГДА ИсходныеДанныеПоследнийЗапрос.НеОднаЕдиничнаяУпаковка
ТОГДА ИсходныеДанныеПоследнийЗапрос.Номенклатура.ЕдиницаИзмерения
ИНАЧЕ ИсходныеДанныеПоследнийЗапрос.Упаковка.ЕдиницаИзмерения
КОНЕЦ КАК ЕдиницаИзмерения,
ЕСТЬNULL(ИсходныеДанныеПоследнийЗапрос.Номенклатура.ИспользоватьУпаковки, ЛОЖЬ) КАК ИспользоватьУпаковки
{ВЫБРАТЬ
Номенклатура.*,
Характеристика.*,
ХарактеристикиИспользуются,
Упаковка.*,
УпаковкаЕдиницаИзмерения,
Весовой,
Количество,
КоличествоЦенниковДляПечати,
КоличествоЭтикетокДляПечати,
ШаблонЦенникаДляПечати,
ШаблонЭтикеткиДляПечати,
Штрихкод,
КодПодключаемогоОборудованияOffline,
PLU,
ВидЦены.*,
ВидЦеныДополнительно.*,
Организация.*,
Цена,
ЦенаДополнительно,
ДатаПоследнегоИзмененияЦены,
ДатаПоследнегоИзмененияЦеныДополнительно,
ОстатокНаСкладе,
ТекущееВремя,
ТекущийПользователь.*}
ИЗ
ИсходныеДанныеРасширенные КАК ИсходныеДанныеПоследнийЗапрос
{ЛЕВОЕ СОЕДИНЕНИЕ ШтрихкодыНоменклатуры КАК ШтрихкодыНоменклатуры
ПО ИсходныеДанныеПоследнийЗапрос.Номенклатура = ШтрихкодыНоменклатуры.Номенклатура
И ИсходныеДанныеПоследнийЗапрос.Характеристика = ШтрихкодыНоменклатуры.Характеристика
И ИсходныеДанныеПоследнийЗапрос.Упаковка = ШтрихкодыНоменклатуры.Упаковка}
{ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КодыТоваровПодключаемогоОборудованияOffline КАК КодыТоваровПодключаемогоОборудованияOffline
ПО ИсходныеДанныеПоследнийЗапрос.Номенклатура = КодыТоваровПодключаемогоОборудованияOffline.Номенклатура
И ИсходныеДанныеПоследнийЗапрос.Характеристика = КодыТоваровПодключаемогоОборудованияOffline.Характеристика
И ИсходныеДанныеПоследнийЗапрос.Упаковка = КодыТоваровПодключаемогоОборудованияOffline.Упаковка
И (&ПравилоОбмена = КодыТоваровПодключаемогоОборудованияOffline.ПравилоОбмена)}
{ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(КОНЕЦПЕРИОДА(&Дата, ДЕНЬ), ВидЦены = &ВидЦены {(Номенклатура).* КАК Номенклатура, (Характеристика).* КАК Характеристика}) КАК ЦеныНоменклатурыСрезПоследних
ПО ИсходныеДанныеПоследнийЗапрос.Номенклатура = ЦеныНоменклатурыСрезПоследних.Номенклатура
И ИсходныеДанныеПоследнийЗапрос.Характеристика = ЦеныНоменклатурыСрезПоследних.Характеристика}
{ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(КОНЕЦПЕРИОДА(&ДатаДополнительно, ДЕНЬ), ВидЦены = &ВидЦеныДополнительно {(Номенклатура).* КАК Номенклатура, (Характеристика).* КАК Характеристика}) КАК ЦеныНоменклатурыСрезПоследнихДополнительно
ПО ИсходныеДанныеПоследнийЗапрос.Номенклатура = ЦеныНоменклатурыСрезПоследнихДополнительно.Номенклатура
И ИсходныеДанныеПоследнийЗапрос.Характеристика = ЦеныНоменклатурыСрезПоследнихДополнительно.Характеристика}
{ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ВидыЦен КАК ВидыЦен
ПО (ВидыЦен.Ссылка = &ВидЦены)}
{ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ВидыЦен КАК ВидыЦенДополнительно
ПО (ВидыЦенДополнительно.Ссылка = &ВидЦеныДополнительно)}
{ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Организации КАК Организации
ПО (Организации.Ссылка = &Организация)}
{ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Пользователи КАК Пользователи
ПО (Пользователи.Ссылка = &ТекущийПользователь)}
{ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыНаСкладах.Остатки(
,
(Номенклатура, Характеристика) В
(ВЫБРАТЬ
ИсходныеДанные.Номенклатура,
ИсходныеДанные.Характеристика
ИЗ
ИсходныеДанные) {(Склад).* КАК Склад, (Номенклатура).* КАК Номенклатура, (Характеристика).* КАК Характеристика}) КАК ТоварыНаСкладахОстатки
ПО ИсходныеДанныеПоследнийЗапрос.Номенклатура = ТоварыНаСкладахОстатки.Номенклатура
И ИсходныеДанныеПоследнийЗапрос.Характеристика = ТоварыНаСкладахОстатки.Характеристика}
{ГДЕ
ИсходныеДанныеПоследнийЗапрос.Номенклатура.* КАК Номенклатура,
ИсходныеДанныеПоследнийЗапрос.Характеристика.* КАК Характеристика,
ИсходныеДанныеПоследнийЗапрос.Упаковка.* КАК Упаковка,
ШтрихкодыНоменклатуры.Штрихкод КАК Штрихкод,
КодыТоваровПодключаемогоОборудованияOffline.Код КАК КодПодключаемогоОборудованияOffline,
ЦеныНоменклатурыСрезПоследних.Цена КАК Цена,
ЦеныНоменклатурыСрезПоследних.Период КАК ДатаПоследнегоИзмененияЦены,
ЦеныНоменклатурыСрезПоследнихДополнительно.Цена КАК ЦенаДополнительно,
ЦеныНоменклатурыСрезПоследнихДополнительно.Период КАК ДатаПоследнегоИзмененияЦеныДополнительно,
ТоварыНаСкладахОстатки.ВНаличииОстаток КАК ОстатокНаСкладе,
(ВЫБОР
КОГДА ИсходныеДанныеПоследнийЗапрос.Упаковка = ЗНАЧЕНИЕ(Справочник.УпаковкиЕдиницыИзмерения.ПустаяСсылка)
ТОГДА ВЫБОР
КОГДА ИсходныеДанныеПоследнийЗапрос.Номенклатура.ЕдиницаИзмерения.ТипИзмеряемойВеличины = ЗНАЧЕНИЕ(Перечисление.ТипыИзмеряемыхВеличин.Вес)
ТОГДА ИСТИНА
ИНАЧЕ ЛОЖЬ
КОНЕЦ
ИНАЧЕ ВЫБОР
КОГДА ИсходныеДанныеПоследнийЗапрос.Упаковка.ЕдиницаИзмерения.ТипИзмеряемойВеличины = ЗНАЧЕНИЕ(Перечисление.ТипыИзмеряемыхВеличин.Вес)
ТОГДА ИСТИНА
ИНАЧЕ ЛОЖЬ
КОНЕЦ
КОНЕЦ) КАК Весовой}
УПОРЯДОЧИТЬ ПО
ИсходныеДанныеПоследнийЗапрос.Порядок
Показатьи
ПоляШаблонаПечатьТовары который выглядит вот так
//////////////////////////////////////////////////////////// ////////////////////
ВЫБРАТЬ
ИсходныеДанные.Номенклатура КАК Номенклатура,
ИсходныеДанные.Характеристика КАК Характеристика,
ИсходныеДанные.Упаковка КАК Упаковка,
ИсходныеДанные.Количество КАК Количество,
ИсходныеДанные.Порядок КАК Порядок,
"Штрихкод" КАК Штрихкод,
"Цена" КАК Цена,
"ЦенаДополнительно" КАК ЦенаДополнительно,
"ДатаПоследнегоИзмененияЦены" КАК ДатаПоследнегоИзмененияЦены,
"ДатаПоследнегоИзмененияЦеныДополнительно" КАК ДатаПоследнегоИзмененияЦеныДополнительно,
"КоличествоЦенников" КАК КоличествоЦенниковДляПечати,
"КоличествоЭтикеток" КАК КоличествоЭтикетокДляПечати,
"ШаблонЭтикетки" КАК ШаблонЭтикеткиДляПечати,
"ШаблонЦенника" КАК ШаблонЦенникаДляПечати
ПОМЕСТИТЬ ИсходныеДанные
ИЗ
(ВЫБРАТЬ
ЗНАЧЕНИЕ(Справочник.Номенклатура.ПустаяСсылка) КАК Номенклатура,
ЗНАЧЕНИЕ(Справочник.ХарактеристикиНоменклатуры.ПустаяСсылка) КАК Характеристика,
ЗНАЧЕНИЕ(Справочник.УпаковкиЕдиницыИзмерения.ПустаяСсылка) КАК Упаковка,
0 КАК Порядок,
0 КАК Количество) КАК ИсходныеДанные
ИНДЕКСИРОВАТЬ ПО
Номенклатура,
Характеристика,
Упаковка
;
//////////////////////////////////////////////////////////// ////////////////////
ВЫБРАТЬ РАЗРЕШЕННЫЕ
ИсходныеДанныеПоследнийЗапрос.Порядок КАК Порядок,
ИсходныеДанныеПоследнийЗапрос.Номенклатура КАК Номенклатура,
ИсходныеДанныеПоследнийЗапрос.Характеристика КАК Характеристика,
ИсходныеДанныеПоследнийЗапрос.Упаковка КАК Упаковка,
ВЫБОР
КОГДА ИсходныеДанныеПоследнийЗапрос.Упаковка = ЗНАЧЕНИЕ(Справочник.УпаковкиЕдиницыИзмерения.ПустаяСсылка)
ТОГДА ИсходныеДанныеПоследнийЗапрос.Номенклатура.ЕдиницаИзмерения
ИНАЧЕ ИсходныеДанныеПоследнийЗапрос.Упаковка
КОНЕЦ КАК УпаковкаЕдиницаИзмерения,
ВЫБОР
КОГДА ИсходныеДанныеПоследнийЗапрос.Упаковка = ЗНАЧЕНИЕ(Справочник.УпаковкиЕдиницыИзмерения.ПустаяСсылка)
ТОГДА ВЫБОР
КОГДА ИсходныеДанныеПоследнийЗапрос.Номенклатура.ЕдиницаИзмерения.ТипИзмеряемойВеличины = ЗНАЧЕНИЕ(Перечисление.ТипыИзмеряемыхВеличин.Вес)
ТОГДА ИСТИНА
ИНАЧЕ ЛОЖЬ
КОНЕЦ
ИНАЧЕ ВЫБОР
КОГДА ИсходныеДанныеПоследнийЗапрос.Упаковка.ЕдиницаИзмерения.ТипИзмеряемойВеличины = ЗНАЧЕНИЕ(Перечисление.ТипыИзмеряемыхВеличин.Вес)
ТОГДА ИСТИНА
ИНАЧЕ ЛОЖЬ
КОНЕЦ
КОНЕЦ КАК Весовой,
ИсходныеДанныеПоследнийЗапрос.Количество КАК Количество,
ИсходныеДанныеПоследнийЗапрос.КоличествоЦенниковДляПечати КАК КоличествоЦенниковДляПечати,
ИсходныеДанныеПоследнийЗапрос.КоличествоЭтикетокДляПечати КАК КоличествоЭтикетокДляПечати,
ИсходныеДанныеПоследнийЗапрос.ШаблонЭтикеткиДляПечати КАК ШаблонЭтикеткиДляПечати,
ИсходныеДанныеПоследнийЗапрос.ШаблонЦенникаДляПечати КАК ШаблонЦенникаДляПечати,
ИсходныеДанныеПоследнийЗапрос.Штрихкод КАК Штрихкод,
КодыТоваровПодключаемогоОборудованияOffline.Код КАК КодПодключаемогоОборудованияOffline,
ВЫБОР КОГДА &ПравилоВыгрузкиВВесы ТОГДА КодыТоваровПодключаемогоОборудованияOffline.Код - &МаксимальныйКодВесовогоТовара
ИНАЧЕ КодыТоваровПодключаемогоОборудованияOffline.Код
КОНЕЦ КАК PLU,
ВидыЦен.Ссылка КАК ВидЦены,
ВидыЦенДополнительно.Ссылка КАК ВидЦеныДополнительно,
Организации.Ссылка КАК Организация,
ИсходныеДанныеПоследнийЗапрос.Цена КАК Цена,
ИсходныеДанныеПоследнийЗапрос.ДатаПоследнегоИзмененияЦены КАК ДатаПоследнегоИзмененияЦены,
ИсходныеДанныеПоследнийЗапрос.ЦенаДополнительно КАК ЦенаДополнительно,
ИсходныеДанныеПоследнийЗапрос.ДатаПоследнегоИзмененияЦеныДополнительно КАК ДатаПоследнегоИзмененияЦеныДополнительно,
&ТекущееВремя КАК ТекущееВремя,
Пользователи.Ссылка КАК ТекущийПользователь
{ВЫБРАТЬ
Номенклатура.*,
Характеристика.*,
Упаковка.*,
УпаковкаЕдиницаИзмерения,
Весовой,
Количество,
КоличествоЦенниковДляПечати,
КоличествоЭтикетокДляПечати,
ШаблонЦенникаДляПечати,
ШаблонЭтикеткиДляПечати,
Штрихкод,
КодПодключаемогоОборудованияOffline,
PLU,
ВидЦены.*,
ВидЦеныДополнительно.*,
Организация.*,
Цена,
ЦенаДополнительно,
ДатаПоследнегоИзмененияЦены,
ДатаПоследнегоИзмененияЦеныДополнительно,
ТекущееВремя,
ТекущийПользователь.*}
ИЗ
ИсходныеДанные КАК ИсходныеДанныеПоследнийЗапрос
{ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КодыТоваровПодключаемогоОборудованияOffline КАК КодыТоваровПодключаемогоОборудованияOffline
ПО ИсходныеДанныеПоследнийЗапрос.Номенклатура = КодыТоваровПодключаемогоОборудованияOffline.Номенклатура
И ИсходныеДанныеПоследнийЗапрос.Характеристика = КодыТоваровПодключаемогоОборудованияOffline.Характеристика
И ИсходныеДанныеПоследнийЗапрос.Упаковка = КодыТоваровПодключаемогоОборудованияOffline.Упаковка
И (&ПравилоОбмена = КодыТоваровПодключаемогоОборудованияOffline.ПравилоОбмена)}
{ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ВидыЦен КАК ВидыЦен
ПО (ВидыЦен.Ссылка = &ВидЦены)}
{ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ВидыЦен КАК ВидыЦенДополнительно
ПО (ВидыЦенДополнительно.Ссылка = &ВидЦеныДополнительно)}
{ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Организации КАК Организации
ПО (Организации.Ссылка = &Организация)}
{ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Пользователи КАК Пользователи
ПО (Пользователи.Ссылка = &ТекущийПользователь)}
УПОРЯДОЧИТЬ ПО
ИсходныеДанныеПоследнийЗапрос.Порядок
Показатьпытался добавить поле
ИсходныеДанныеПоследнийЗапрос.Цена - (ИсходныеДанныеПоследнийЗапрос.Цена * 0.1) КАК ЦенаСоСкидкой
но СКД ругается на невозможность проведения каких либо операций с этими полями
Помогите пожалуйста разобраться
Спасибо.
По теме из базы знаний
Найденные решения
нашел решение проблемы, в СКД который выводит на печать надо добавить новый реквизит,
а в модуле ПечатьЭтикетокИЦенников нашел код который делает подмену
Думаю проблема в том что СКД не может определить тип данных пока не произойдет подмена запроса, соответсвтенно не дает проводить операции с этими реквизитами в СКД
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
ИсходныеДанные.Номенклатура КАК Номенклатура,
ИсходныеДанные.Характеристика КАК Характеристика,
ИсходныеДанные.Упаковка КАК Упаковка,
ИсходныеДанные.Количество КАК Количество,
ИсходныеДанные.Порядок КАК Порядок,
"Штрихкод" КАК Штрихкод,
"Цена" КАК Цена,
------> "ЦенаСоСкидкой" КАК ЦенаСоСкидкой,
"ЦенаДополнительно" КАК ЦенаДополнительно,
"ДатаПоследнегоИзмененияЦены" КАК ДатаПоследнегоИзмененияЦены,
"ДатаПоследнегоИзмененияЦеныДополнительно" КАК ДатаПоследнегоИзмененияЦеныДополнительно,
"КоличествоЦенников" КАК КоличествоЦенниковДляПечати,
"КоличествоЭтикеток" КАК КоличествоЭтикетокДляПечати,
"ШаблонЭтикетки" КАК ШаблонЭтикеткиДляПечати,
"ШаблонЦенника" КАК ШаблонЦенникаДляПечати
ПОМЕСТИТЬ ИсходныеДанные
ИЗ
(ВЫБРАТЬ
ЗНАЧЕНИЕ(Справочник.Номенклатура.ПустаяСсылка) КАК Номенклатура,
ЗНАЧЕНИЕ(Справочник.ХарактеристикиНоменклатуры.ПустаяСсылка) КАК Характеристика,
ЗНАЧЕНИЕ(Справочник.УпаковкиЕдиницыИзмерения.ПустаяСсылка) КАК Упаковка,
0 КАК Порядок,
0 КАК Количество) КАК ИсходныеДанные
ИНДЕКСИРОВАТЬ ПО
Номенклатура,
Характеристика,
Упаковка
;
//////////////////////////////////////////////////////////// ////////////////////
ВЫБРАТЬ РАЗРЕШЕННЫЕ
ИсходныеДанныеПоследнийЗапрос.Порядок КАК Порядок,
ИсходныеДанныеПоследнийЗапрос.Номенклатура КАК Номенклатура,
ИсходныеДанныеПоследнийЗапрос.Характеристика КАК Характеристика,
ИсходныеДанныеПоследнийЗапрос.Упаковка КАК Упаковка,
ВЫБОР
КОГДА ИсходныеДанныеПоследнийЗапрос.Упаковка = ЗНАЧЕНИЕ(Справочник.УпаковкиЕдиницыИзмерения.ПустаяСсылка)
ТОГДА ИсходныеДанныеПоследнийЗапрос.Номенклатура.ЕдиницаИзмерения
ИНАЧЕ ИсходныеДанныеПоследнийЗапрос.Упаковка
КОНЕЦ КАК УпаковкаЕдиницаИзмерения,
ВЫБОР
КОГДА ИсходныеДанныеПоследнийЗапрос.Упаковка = ЗНАЧЕНИЕ(Справочник.УпаковкиЕдиницыИзмерения.ПустаяСсылка)
ТОГДА ВЫБОР
КОГДА ИсходныеДанныеПоследнийЗапрос.Номенклатура.ЕдиницаИзмерения.ТипИзмеряемойВеличины = ЗНАЧЕНИЕ(Перечисление.ТипыИзмеряемыхВеличин.Вес)
ТОГДА ИСТИНА
ИНАЧЕ ЛОЖЬ
КОНЕЦ
ИНАЧЕ ВЫБОР
КОГДА ИсходныеДанныеПоследнийЗапрос.Упаковка.ЕдиницаИзмерения.ТипИзмеряемойВеличины = ЗНАЧЕНИЕ(Перечисление.ТипыИзмеряемыхВеличин.Вес)
ТОГДА ИСТИНА
ИНАЧЕ ЛОЖЬ
КОНЕЦ
КОНЕЦ КАК Весовой,
ИсходныеДанныеПоследнийЗапрос.Количество КАК Количество,
ИсходныеДанныеПоследнийЗапрос.КоличествоЦенниковДляПечати КАК КоличествоЦенниковДляПечати,
ИсходныеДанныеПоследнийЗапрос.КоличествоЭтикетокДляПечати КАК КоличествоЭтикетокДляПечати,
ИсходныеДанныеПоследнийЗапрос.ШаблонЭтикеткиДляПечати КАК ШаблонЭтикеткиДляПечати,
ИсходныеДанныеПоследнийЗапрос.ШаблонЦенникаДляПечати КАК ШаблонЦенникаДляПечати,
ИсходныеДанныеПоследнийЗапрос.Штрихкод КАК Штрихкод,
КодыТоваровПодключаемогоОборудованияOffline.Код КАК КодПодключаемогоОборудованияOffline,
ВЫБОР КОГДА &ПравилоВыгрузкиВВесы ТОГДА КодыТоваровПодключаемогоОборудованияOffline.Код - &МаксимальныйКодВесовогоТовара
ИНАЧЕ КодыТоваровПодключаемогоОборудованияOffline.Код
КОНЕЦ КАК PLU,
ВидыЦен.Ссылка КАК ВидЦены,
ВидыЦенДополнительно.Ссылка КАК ВидЦеныДополнительно,
Организации.Ссылка КАК Организация,
ИсходныеДанныеПоследнийЗапрос.Цена КАК Цена,
------> ИсходныеДанныеПоследнийЗапрос.ЦенаСоСкидкой КАК ЦенаСоСкидкой,
ИсходныеДанныеПоследнийЗапрос.ДатаПоследнегоИзмененияЦены КАК ДатаПоследнегоИзмененияЦены,
ИсходныеДанныеПоследнийЗапрос.ЦенаДополнительно КАК ЦенаДополнительно,
ИсходныеДанныеПоследнийЗапрос.ДатаПоследнегоИзмененияЦеныДополнительно КАК ДатаПоследнегоИзмененияЦеныДополнительно,
&ТекущееВремя КАК ТекущееВремя,
Пользователи.Ссылка КАК ТекущийПользователь
{ВЫБРАТЬ
Номенклатура.*,
Характеристика.*,
Упаковка.*,
УпаковкаЕдиницаИзмерения,
Весовой,
Количество,
КоличествоЦенниковДляПечати,
КоличествоЭтикетокДляПечати,
ШаблонЦенникаДляПечати,
ШаблонЭтикеткиДляПечати,
Штрихкод,
КодПодключаемогоОборудованияOffline,
PLU,
ВидЦены.*,
ВидЦеныДополнительно.*,
Организация.*,
Цена,
------> ЦенаСоСкидкой,
ЦенаДополнительно,
ДатаПоследнегоИзмененияЦены,
ДатаПоследнегоИзмененияЦеныДополнительно,
ТекущееВремя,
ТекущийПользователь.*}
ИЗ
ИсходныеДанные КАК ИсходныеДанныеПоследнийЗапрос
{ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КодыТоваровПодключаемогоОборудованияOffline КАК КодыТоваровПодключаемогоОборудованияOffline
ПО ИсходныеДанныеПоследнийЗапрос.Номенклатура = КодыТоваровПодключаемогоОборудованияOffline.Номенклатура
И ИсходныеДанныеПоследнийЗапрос.Характеристика = КодыТоваровПодключаемогоОборудованияOffline.Характеристика
И ИсходныеДанныеПоследнийЗапрос.Упаковка = КодыТоваровПодключаемогоОборудованияOffline.Упаковка
И (&ПравилоОбмена = КодыТоваровПодключаемогоОборудованияOffline.ПравилоОбмена)}
{ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ВидыЦен КАК ВидыЦен
ПО (ВидыЦен.Ссылка = &ВидЦены)}
{ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ВидыЦен КАК ВидыЦенДополнительно
ПО (ВидыЦенДополнительно.Ссылка = &ВидЦеныДополнительно)}
{ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Организации КАК Организации
ПО (Организации.Ссылка = &Организация)}
{ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Пользователи КАК Пользователи
ПО (Пользователи.Ссылка = &ТекущийПользователь)}
УПОРЯДОЧИТЬ ПО
ИсходныеДанныеПоследнийЗапрос.Порядок
Показатьа в модуле ПечатьЭтикетокИЦенников нашел код который делает подмену
// Подмена запроса при печати этикеток...
Если ИсходныеДанные <> Неопределено Тогда
ТекстВременнойТаблицы =
" (ВЫБРАТЬ
| ЗНАЧЕНИЕ(Справочник.Номенклатура.ПустаяСсылка) КАК Номенклатура,
| ЗНАЧЕНИЕ(Справочник.ХарактеристикиНоменклатуры.ПустаяСсылка) КАК Характеристика,
| ЗНАЧЕНИЕ(Справочник.УпаковкиЕдиницыИзмерения.ПустаяСсылка) КАК Упаковка,
| 0 КАК Порядок,
| 0 КАК Количество)";
Запрос.Текст = СтрЗаменить(Запрос.Текст, ТекстВременнойТаблицы, "&Таблица");
ОбщегоНазначенияУТ.ПронумероватьТаблицуЗначений(ИсходныеДанные, "Порядок");
Запрос.Параметры.Вставить("Таблица", ИсходныеДанные);
Запрос.Текст = СтрЗаменить(Запрос.Текст, """КоличествоЦенников""", "ИсходныеДанные.КоличествоЦенников");
Запрос.Текст = СтрЗаменить(Запрос.Текст, """КоличествоЭтикеток""", "ИсходныеДанные.КоличествоЭтикеток");
Запрос.Текст = СтрЗаменить(Запрос.Текст, "КОЛИЧЕСТВО(ИсходныеДанные.КоличествоЦенников)",
"СУММА(ИсходныеДанные.КоличествоЦенниковДляПечати)");
Запрос.Текст = СтрЗаменить(Запрос.Текст, "КОЛИЧЕСТВО(ИсходныеДанные.КоличествоЭтикеток)",
"СУММА(ИсходныеДанные.КоличествоЭтикеток)");
Запрос.Текст = СтрЗаменить(Запрос.Текст, """ШаблонЦенника""", "ИсходныеДанные.ШаблонЦенника");
Запрос.Текст = СтрЗаменить(Запрос.Текст, """ШаблонЭтикетки""", "ИсходныеДанные.ШаблонЭтикетки");
Запрос.Текст = СтрЗаменить(Запрос.Текст, """Штрихкод""", "ИсходныеДанные.Штрихкод");
Запрос.Текст = СтрЗаменить(Запрос.Текст, """Цена""", "ИсходныеДанные.Цена");
------> Запрос.Текст = СтрЗаменить(Запрос.Текст, """ЦенаСоСкидкой""", "ИсходныеДанные.Цена - (ИсходныеДанные.Цена * 0.1)");
Запрос.Текст = СтрЗаменить(Запрос.Текст, """ЦенаДополнительно""", "ИсходныеДанные.ЦенаДополнительно");
Запрос.Текст = СтрЗаменить(Запрос.Текст, """ДатаПоследнегоИзмененияЦены""", "ИсходныеДанные.ДатаПоследнегоИзмененияЦены");
Запрос.Текст = СтрЗаменить(Запрос.Текст, """ДатаПоследнегоИзмененияЦеныДополнительно""", "ИсходныеДанные.ДатаПоследнегоИзмененияЦеныДополнительно");
КонецЕсли;
ПоказатьДумаю проблема в том что СКД не может определить тип данных пока не произойдет подмена запроса, соответсвтенно не дает проводить операции с этими реквизитами в СКД
Остальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(1) Делал что-то подобное, там много что придется перелопатить, не только код но и модуль "Печати этикеток и ценников", а так же еще справочник "Шаблоны ценников и этикеток" чтобы пользователь сам выбирал куда вставлять в макет новое поле, делал на УТ 11.3.
Я делал на форме реквизит скидку где пользователь указывал какую скидку надо печатать. И выводил на ценник.
p.s. Я в СКД использовал только для обозначения колонок, а в коде уже они заполнял.
p.s.s. Если хочешь сделать сам без чужого кода, пробегись по глобальному поиску "ВидЦеныДополнительно" и "ЦенаДополнительно" (без кавычек) и ты увидишь что и где надо менять и добавлять.
Я делал на форме реквизит скидку где пользователь указывал какую скидку надо печатать. И выводил на ценник.
p.s. Я в СКД использовал только для обозначения колонок, а в коде уже они заполнял.
//..... запрос скд
СкидкиНаценки.Ссылка КАК ВидСкидки,
&СкидкаДополнительно КАК СкидкаДополнительно,
0 КАК ЦенаСоСкидкой,
0 КАК ЦенаСкидкаДополнительно,
0 КАК Серия
///.... запрос скд
p.s.s. Если хочешь сделать сам без чужого кода, пробегись по глобальному поиску "ВидЦеныДополнительно" и "ЦенаДополнительно" (без кавычек) и ты увидишь что и где надо менять и добавлять.
нашел решение проблемы, в СКД который выводит на печать надо добавить новый реквизит,
а в модуле ПечатьЭтикетокИЦенников нашел код который делает подмену
Думаю проблема в том что СКД не может определить тип данных пока не произойдет подмена запроса, соответсвтенно не дает проводить операции с этими реквизитами в СКД
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
ИсходныеДанные.Номенклатура КАК Номенклатура,
ИсходныеДанные.Характеристика КАК Характеристика,
ИсходныеДанные.Упаковка КАК Упаковка,
ИсходныеДанные.Количество КАК Количество,
ИсходныеДанные.Порядок КАК Порядок,
"Штрихкод" КАК Штрихкод,
"Цена" КАК Цена,
------> "ЦенаСоСкидкой" КАК ЦенаСоСкидкой,
"ЦенаДополнительно" КАК ЦенаДополнительно,
"ДатаПоследнегоИзмененияЦены" КАК ДатаПоследнегоИзмененияЦены,
"ДатаПоследнегоИзмененияЦеныДополнительно" КАК ДатаПоследнегоИзмененияЦеныДополнительно,
"КоличествоЦенников" КАК КоличествоЦенниковДляПечати,
"КоличествоЭтикеток" КАК КоличествоЭтикетокДляПечати,
"ШаблонЭтикетки" КАК ШаблонЭтикеткиДляПечати,
"ШаблонЦенника" КАК ШаблонЦенникаДляПечати
ПОМЕСТИТЬ ИсходныеДанные
ИЗ
(ВЫБРАТЬ
ЗНАЧЕНИЕ(Справочник.Номенклатура.ПустаяСсылка) КАК Номенклатура,
ЗНАЧЕНИЕ(Справочник.ХарактеристикиНоменклатуры.ПустаяСсылка) КАК Характеристика,
ЗНАЧЕНИЕ(Справочник.УпаковкиЕдиницыИзмерения.ПустаяСсылка) КАК Упаковка,
0 КАК Порядок,
0 КАК Количество) КАК ИсходныеДанные
ИНДЕКСИРОВАТЬ ПО
Номенклатура,
Характеристика,
Упаковка
;
//////////////////////////////////////////////////////////// ////////////////////
ВЫБРАТЬ РАЗРЕШЕННЫЕ
ИсходныеДанныеПоследнийЗапрос.Порядок КАК Порядок,
ИсходныеДанныеПоследнийЗапрос.Номенклатура КАК Номенклатура,
ИсходныеДанныеПоследнийЗапрос.Характеристика КАК Характеристика,
ИсходныеДанныеПоследнийЗапрос.Упаковка КАК Упаковка,
ВЫБОР
КОГДА ИсходныеДанныеПоследнийЗапрос.Упаковка = ЗНАЧЕНИЕ(Справочник.УпаковкиЕдиницыИзмерения.ПустаяСсылка)
ТОГДА ИсходныеДанныеПоследнийЗапрос.Номенклатура.ЕдиницаИзмерения
ИНАЧЕ ИсходныеДанныеПоследнийЗапрос.Упаковка
КОНЕЦ КАК УпаковкаЕдиницаИзмерения,
ВЫБОР
КОГДА ИсходныеДанныеПоследнийЗапрос.Упаковка = ЗНАЧЕНИЕ(Справочник.УпаковкиЕдиницыИзмерения.ПустаяСсылка)
ТОГДА ВЫБОР
КОГДА ИсходныеДанныеПоследнийЗапрос.Номенклатура.ЕдиницаИзмерения.ТипИзмеряемойВеличины = ЗНАЧЕНИЕ(Перечисление.ТипыИзмеряемыхВеличин.Вес)
ТОГДА ИСТИНА
ИНАЧЕ ЛОЖЬ
КОНЕЦ
ИНАЧЕ ВЫБОР
КОГДА ИсходныеДанныеПоследнийЗапрос.Упаковка.ЕдиницаИзмерения.ТипИзмеряемойВеличины = ЗНАЧЕНИЕ(Перечисление.ТипыИзмеряемыхВеличин.Вес)
ТОГДА ИСТИНА
ИНАЧЕ ЛОЖЬ
КОНЕЦ
КОНЕЦ КАК Весовой,
ИсходныеДанныеПоследнийЗапрос.Количество КАК Количество,
ИсходныеДанныеПоследнийЗапрос.КоличествоЦенниковДляПечати КАК КоличествоЦенниковДляПечати,
ИсходныеДанныеПоследнийЗапрос.КоличествоЭтикетокДляПечати КАК КоличествоЭтикетокДляПечати,
ИсходныеДанныеПоследнийЗапрос.ШаблонЭтикеткиДляПечати КАК ШаблонЭтикеткиДляПечати,
ИсходныеДанныеПоследнийЗапрос.ШаблонЦенникаДляПечати КАК ШаблонЦенникаДляПечати,
ИсходныеДанныеПоследнийЗапрос.Штрихкод КАК Штрихкод,
КодыТоваровПодключаемогоОборудованияOffline.Код КАК КодПодключаемогоОборудованияOffline,
ВЫБОР КОГДА &ПравилоВыгрузкиВВесы ТОГДА КодыТоваровПодключаемогоОборудованияOffline.Код - &МаксимальныйКодВесовогоТовара
ИНАЧЕ КодыТоваровПодключаемогоОборудованияOffline.Код
КОНЕЦ КАК PLU,
ВидыЦен.Ссылка КАК ВидЦены,
ВидыЦенДополнительно.Ссылка КАК ВидЦеныДополнительно,
Организации.Ссылка КАК Организация,
ИсходныеДанныеПоследнийЗапрос.Цена КАК Цена,
------> ИсходныеДанныеПоследнийЗапрос.ЦенаСоСкидкой КАК ЦенаСоСкидкой,
ИсходныеДанныеПоследнийЗапрос.ДатаПоследнегоИзмененияЦены КАК ДатаПоследнегоИзмененияЦены,
ИсходныеДанныеПоследнийЗапрос.ЦенаДополнительно КАК ЦенаДополнительно,
ИсходныеДанныеПоследнийЗапрос.ДатаПоследнегоИзмененияЦеныДополнительно КАК ДатаПоследнегоИзмененияЦеныДополнительно,
&ТекущееВремя КАК ТекущееВремя,
Пользователи.Ссылка КАК ТекущийПользователь
{ВЫБРАТЬ
Номенклатура.*,
Характеристика.*,
Упаковка.*,
УпаковкаЕдиницаИзмерения,
Весовой,
Количество,
КоличествоЦенниковДляПечати,
КоличествоЭтикетокДляПечати,
ШаблонЦенникаДляПечати,
ШаблонЭтикеткиДляПечати,
Штрихкод,
КодПодключаемогоОборудованияOffline,
PLU,
ВидЦены.*,
ВидЦеныДополнительно.*,
Организация.*,
Цена,
------> ЦенаСоСкидкой,
ЦенаДополнительно,
ДатаПоследнегоИзмененияЦены,
ДатаПоследнегоИзмененияЦеныДополнительно,
ТекущееВремя,
ТекущийПользователь.*}
ИЗ
ИсходныеДанные КАК ИсходныеДанныеПоследнийЗапрос
{ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КодыТоваровПодключаемогоОборудованияOffline КАК КодыТоваровПодключаемогоОборудованияOffline
ПО ИсходныеДанныеПоследнийЗапрос.Номенклатура = КодыТоваровПодключаемогоОборудованияOffline.Номенклатура
И ИсходныеДанныеПоследнийЗапрос.Характеристика = КодыТоваровПодключаемогоОборудованияOffline.Характеристика
И ИсходныеДанныеПоследнийЗапрос.Упаковка = КодыТоваровПодключаемогоОборудованияOffline.Упаковка
И (&ПравилоОбмена = КодыТоваровПодключаемогоОборудованияOffline.ПравилоОбмена)}
{ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ВидыЦен КАК ВидыЦен
ПО (ВидыЦен.Ссылка = &ВидЦены)}
{ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ВидыЦен КАК ВидыЦенДополнительно
ПО (ВидыЦенДополнительно.Ссылка = &ВидЦеныДополнительно)}
{ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Организации КАК Организации
ПО (Организации.Ссылка = &Организация)}
{ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Пользователи КАК Пользователи
ПО (Пользователи.Ссылка = &ТекущийПользователь)}
УПОРЯДОЧИТЬ ПО
ИсходныеДанныеПоследнийЗапрос.Порядок
Показатьа в модуле ПечатьЭтикетокИЦенников нашел код который делает подмену
// Подмена запроса при печати этикеток...
Если ИсходныеДанные <> Неопределено Тогда
ТекстВременнойТаблицы =
" (ВЫБРАТЬ
| ЗНАЧЕНИЕ(Справочник.Номенклатура.ПустаяСсылка) КАК Номенклатура,
| ЗНАЧЕНИЕ(Справочник.ХарактеристикиНоменклатуры.ПустаяСсылка) КАК Характеристика,
| ЗНАЧЕНИЕ(Справочник.УпаковкиЕдиницыИзмерения.ПустаяСсылка) КАК Упаковка,
| 0 КАК Порядок,
| 0 КАК Количество)";
Запрос.Текст = СтрЗаменить(Запрос.Текст, ТекстВременнойТаблицы, "&Таблица");
ОбщегоНазначенияУТ.ПронумероватьТаблицуЗначений(ИсходныеДанные, "Порядок");
Запрос.Параметры.Вставить("Таблица", ИсходныеДанные);
Запрос.Текст = СтрЗаменить(Запрос.Текст, """КоличествоЦенников""", "ИсходныеДанные.КоличествоЦенников");
Запрос.Текст = СтрЗаменить(Запрос.Текст, """КоличествоЭтикеток""", "ИсходныеДанные.КоличествоЭтикеток");
Запрос.Текст = СтрЗаменить(Запрос.Текст, "КОЛИЧЕСТВО(ИсходныеДанные.КоличествоЦенников)",
"СУММА(ИсходныеДанные.КоличествоЦенниковДляПечати)");
Запрос.Текст = СтрЗаменить(Запрос.Текст, "КОЛИЧЕСТВО(ИсходныеДанные.КоличествоЭтикеток)",
"СУММА(ИсходныеДанные.КоличествоЭтикеток)");
Запрос.Текст = СтрЗаменить(Запрос.Текст, """ШаблонЦенника""", "ИсходныеДанные.ШаблонЦенника");
Запрос.Текст = СтрЗаменить(Запрос.Текст, """ШаблонЭтикетки""", "ИсходныеДанные.ШаблонЭтикетки");
Запрос.Текст = СтрЗаменить(Запрос.Текст, """Штрихкод""", "ИсходныеДанные.Штрихкод");
Запрос.Текст = СтрЗаменить(Запрос.Текст, """Цена""", "ИсходныеДанные.Цена");
------> Запрос.Текст = СтрЗаменить(Запрос.Текст, """ЦенаСоСкидкой""", "ИсходныеДанные.Цена - (ИсходныеДанные.Цена * 0.1)");
Запрос.Текст = СтрЗаменить(Запрос.Текст, """ЦенаДополнительно""", "ИсходныеДанные.ЦенаДополнительно");
Запрос.Текст = СтрЗаменить(Запрос.Текст, """ДатаПоследнегоИзмененияЦены""", "ИсходныеДанные.ДатаПоследнегоИзмененияЦены");
Запрос.Текст = СтрЗаменить(Запрос.Текст, """ДатаПоследнегоИзмененияЦеныДополнительно""", "ИсходныеДанные.ДатаПоследнегоИзмененияЦеныДополнительно");
КонецЕсли;
ПоказатьДумаю проблема в том что СКД не может определить тип данных пока не произойдет подмена запроса, соответсвтенно не дает проводить операции с этими реквизитами в СКД
10.
Гость
18.08.22 13:22
Оставлю тут, чтобы не потерять и не забылось (на основе ут 11.5.8.221).
1) Создаём в расширении в справочнике номенклатуры необходимые реквизиты.
2) Выставляем их на форму, чтобы пользователи могли самостоятельно их редактировать.
3) Переносим обработку ПечатьЭтикетокИЦенников2_5 в расширение, если включена опция ИспользоватьЦенообразование2_5 (будем рассматривать этот пример), если не включена, то переносим обработку ПечатьЭтикетокИЦенников.
4) Переносим в расширение макет скд ПоляШаблонаТовары обработки ПечатьЭтикетокИЦенников2_5
5) Переносим форму ФормаТовары обработки ПечатьЭтикетокИЦенников2_5 в расширение
5) Ловим через конфигуратор текст запроса в модуле формы ФормаТовары в процедуре ЗагрузитьНастройкиОтбораПоУмолчанию на строчке
6) Через ИзменениеИКонтроль в модуле формы ФормаТовары процедуры ЗагрузитьНастройкиОтбораПоУмолчанию делаем подмену текста запроса скд через функцию.
В созданной функции находится отловленный текст запроса (все недостающие элементы текста запроса переносим расширение). Предупреждаю сразу текст запроса будет огромным, но через ИзменениеИКонтроль можно будет отлавливать изменения обновлений и быстро его править по необходимости.
В тексте запроса добавляем только свои созданные поля.
7) Переносим форму ФормаРедактированияШаблонаЭтикетокИЦенников справочника ШаблоныЭтикетокИЦенников в расширение.
8) В модуле формы ФормаРедактированияШаблонаЭтикетокИЦенников, опять же через ИзменениеИКонтроль процедуры ЗаполнитьДоступныеПоля вставляем созданные реквизиты номенклатуры после
а вставляем так
При редактировании этикетки товара, добавленные реквизиты появятся в списке.
Данный способ не является самым оптимальным, но простым и необходимости менять поддержку конфигурации нет. И изменении обновлениями текст запроса быстро правится. Надеюсь кому то пригодится.
1) Создаём в расширении в справочнике номенклатуры необходимые реквизиты.
2) Выставляем их на форму, чтобы пользователи могли самостоятельно их редактировать.
3) Переносим обработку ПечатьЭтикетокИЦенников2_5 в расширение, если включена опция ИспользоватьЦенообразование2_5 (будем рассматривать этот пример), если не включена, то переносим обработку ПечатьЭтикетокИЦенников.
4) Переносим в расширение макет скд ПоляШаблонаТовары обработки ПечатьЭтикетокИЦенников2_5
5) Переносим форму ФормаТовары обработки ПечатьЭтикетокИЦенников2_5 в расширение
5) Ловим через конфигуратор текст запроса в модуле формы ФормаТовары в процедуре ЗагрузитьНастройкиОтбораПоУмолчанию на строчке
СхемаКомпоновкиДанных.НаборыДанных.НаборДанных.Запрос = ТекстЗапроса;
6) Через ИзменениеИКонтроль в модуле формы ФормаТовары процедуры ЗагрузитьНастройкиОтбораПоУмолчанию делаем подмену текста запроса скд через функцию.
#Вставка
ТекстЗапроса = ТекстЗапросаСКД();
#КонецВставки
СхемаКомпоновкиДанных.НаборыДанных.НаборДанных.Запрос = ТекстЗапроса;
В созданной функции находится отловленный текст запроса (все недостающие элементы текста запроса переносим расширение). Предупреждаю сразу текст запроса будет огромным, но через ИзменениеИКонтроль можно будет отлавливать изменения обновлений и быстро его править по необходимости.
В тексте запроса добавляем только свои созданные поля.
ИсходныеДанныеПоследнийЗапрос.Номенклатура.ТекстДляЭтикеткиВБ КАК ТекстДляЭтикеткиВБ,
ИсходныеДанныеПоследнийЗапрос.Номенклатура.ТекстДляЭтикеткиЯМ1 КАК ТекстДляЭтикеткиЯМ1,
ИсходныеДанныеПоследнийЗапрос.Номенклатура.ТекстДляЭтикеткиЯМ2 КАК ТекстДляЭтикеткиЯМ2,
ИсходныеДанныеПоследнийЗапрос.Номенклатура.ТекстДляЭтикеткиОзон КАК ТекстДляЭтикеткиОзон
7) Переносим форму ФормаРедактированияШаблонаЭтикетокИЦенников справочника ШаблоныЭтикетокИЦенников в расширение.
8) В модуле формы ФормаРедактированияШаблонаЭтикетокИЦенников, опять же через ИзменениеИКонтроль процедуры ЗаполнитьДоступныеПоля вставляем созданные реквизиты номенклатуры после
ИначеЕсли Объект.Назначение = Перечисления.НазначенияШаблоновЭтикетокИЦенников.ЦенникДляТоваров
ИЛИ Объект.Назначение = Перечисления.НазначенияШаблоновЭтикетокИЦенников.ЭтикеткаДляТоваров Тогда
а вставляем так
ИменаПолей.Добавить("Номенклатура.ТипНоменклатуры");
#Вставка
ИменаПолей.Добавить("Номенклатура.ТекстДляЭтикеткиВБ");
ИменаПолей.Добавить("Номенклатура.ТекстДляЭтикеткиЯМ1");
ИменаПолей.Добавить("Номенклатура.ТекстДляЭтикеткиЯМ2");
ИменаПолей.Добавить("Номенклатура.ТекстДляЭтикеткиОзон");
#КонецВставки
ИменаПолей.Добавить("Номенклатура,Свойства");
ПоказатьПри редактировании этикетки товара, добавленные реквизиты появятся в списке.
Данный способ не является самым оптимальным, но простым и необходимости менять поддержку конфигурации нет. И изменении обновлениями текст запроса быстро правится. Надеюсь кому то пригодится.
Прикрепленные файлы:
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот