Имя: Пароль:
1C
1С v8
Изменение обработки ПечатьЭтикетокИЦенников
0 ЗаЧтоМнеВсеЭто
 
01.12.19
20:23
Доброго времени суток. Буду рад помощи в сложившейся ситуации.

Возникла необходимость в создании макета ценника с указанием двух вычисляемых акционных цен (типовый шаблон показывает только одну вычисляемую). Я сохранил соответствую обработку как внешний файл (дабы не снимать с поддержки) и добавил в запрос выражение для второй с последующей выборкой. В списке полей СКД они появились. Однако при открытии файла обработки в соответствующем шаблоне ценника новое доступное поле не появилось. В чем может быть проблема?

https://image.prntscr.com/image/hISkcds2Tt623PEeqG7L8Q.png

...
ВЫБРАТЬ РАЗРЕШЕННЫЕ
...
ВЫРАЗИТЬ(МАКСИМУМ(ЦеныНоменклатуры.Цена * 0.97) КАК ЧИСЛО(15, 2)) КАК ЦенаСоСкидкой,
ВЫРАЗИТЬ(МАКСИМУМ(ЦеныНоменклатуры.Цена * 0.95) КАК ЧИСЛО(15, 2)) КАК ЦенаСоСкидкой2,
...
{ВЫБРАТЬ
ЦенаСоСкидкой,
ЦенаСоСкидкой2,
...


Подозреваю, что надо не из файла открывать, а подключать как внешнюю (иначе открываются шаблоны из типовой), но система возвращает ошибку "Метод объекта не обнаружен (СведенияОВнешнейОбработке)".
1 Мимохожий Однако
 
01.12.19
20:31
Телепаты будут в понедельник. Никому не сообщай подробности.
2 ЗаЧтоМнеВсеЭто
 
01.12.19
20:34
(1) Подробности какого рода необходимы?
3 ДенисЧ
 
01.12.19
20:49
А почему бы не добавить метод, который она хочет? И вообще оформить обработку как внешнюю подключаемую?
4 Мимохожий Однако
 
01.12.19
21:20
(2) Конфигурация, платформа, как запускаешь. Это как минимум.
5 ЗаЧтоМнеВсеЭто
 
02.12.19
07:04
(3) Добавил все необходимые функции и подключил как внешнюю - эффект все тот же - в доступных полях изменений нет.
Я так понимаю, проблема в том, что шаблон хранится в справочнике, который в свою очередь взаимодействует с типовыми макетами, поэтому макет внешней обработки с идентичными именами макетов (просто ведь типовую выгрузил) попросту игнорируются.

(4) Розница 2.3.1.30, платформа 8.3.15.1747, тонкий клиент. Обработку пробовал как из файла, так и в виде подключаемой.

Пытаюсь сейчас в виде расширения сделать отдельный шаблон и добавить команду на его загрузку в форме редактирования макета ценников.
6 PuhUfa
 
02.12.19
07:24
(5) Что такое доступные поля? Ты про поля которые в настройках шаблона Этикеток и Ценников? Так это даже не в этой обработке. Это в Справочнике "ШаблоныЭтикетокИЦенников".
7 ЗаЧтоМнеВсеЭто
 
02.12.19
08:22
(6) Сам шаблон - да. В рознице этот справочник называется "ХранилищеШаблонов". Однако у него есть макеты на предопределенные типы ценников (для их загрузки при создании нового шаблона), из которых меня интересует "ШаблонЦенникаАкционного". При выборе этого типа шаблона в соответствующей форме справочника отрабатывает процедура "ПоместитьВТабличныйДокументШаблонПоУмолчанию(ИмяШаблона)" с веткой "ИначеЕсли ИмяШаблона = "ШаблонЦенникаАкционного" Тогда СхемаКомпоновкиДанных = Обработки.ПечатьЭтикетокИЦенников.ПолучитьМакет("ПоляШаблонаЦенникАкционный");". Вот я в выгруженной мною обработке в макете "ПоляШаблонаЦенникАкционный" и добавил указанные выше выражения.
8 PuhUfa
 
02.12.19
08:36
(8) Я сужу по УТ11... Похожий код, в УТ11, в процедуре ЗаполнитьДоступныеПоля():

Если Объект.Назначение = Перечисления.НазначенияШаблоновЭтикетокИЦенников.ЭтикеткаДляСкладскихЯчеек Тогда
    СхемаКомпоновкиДанных = Обработки.ПечатьЭтикетокИЦенников.ПолучитьМакет("ПоляШаблонаСкладскиеЯчейки");
ИначеЕсли Объект.Назначение = Перечисления.НазначенияШаблоновЭтикетокИЦенников.ЦенникДляТоваров Тогда
    СхемаКомпоновкиДанных = Обработки.ПечатьЭтикетокИЦенников.ПолучитьМакет("ПоляШаблонаТовары");
....

И в ней же, ниже, есть:

ИначеЕсли Объект.Назначение = Перечисления.НазначенияШаблоновЭтикетокИЦенников.ЦенникДляТоваров
      ИЛИ Объект.Назначение = Перечисления.НазначенияШаблоновЭтикетокИЦенников.ЭтикеткаДляТоваров Тогда
        
    ИменаПолей = Новый Массив;
        
    ИменаПолей.Добавить("Штрихкод");
        
    ИменаПолей.Добавить("ВидЦены");
    ИменаПолей.Добавить("ВидЦены.ВалютаЦены");
    ИменаПолей.Добавить("ВидЦены.Наименование");
    ИменаПолей.Добавить("ВидЦены.ЦенаВключаетНДС");
    ИменаПолей.Добавить("Цена");
    ИменаПолей.Добавить("ДатаПоследнегоИзмененияЦены");


Вот тут и надо прописать твои новые поля. Ну по крайней мере в УТ11 так. Посмотри, наверное что то подобное и в Рознице
9 PuhUfa
 
02.12.19
08:39
(7) И вот тут:
Тогда СхемаКомпоновкиДанных = Обработки.ПечатьЭтикетокИЦенников.ПолучитьМакет("ПоляШаблонаЦенникАкционный");"
Ты на свою внешнюю обработку то поменял?