Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
11 дек 2024, 22:43

Передать значение в модуль менеджера документа

Автор ToryFree, 16 июл 2020, 22:50

0 Пользователей и 1 гость просматривают эту тему.

ToryFree

Вопрос от новичка в 8.3).

Нужно сделать нестандартную форму печати в документе СборкаТоваров (конфигурация Розница).
Туда должна попасть розничная цена комплекта из регистра сведений ЦеныНоменклатурыСрезПоследних.
При попытке передать в запрос значение параметра ТекВидЦены (то, что цена - - розничная), выдается сообщение
{Документ.СборкаТоваров.МодульМенеджера(1002,47)}: Переменная не определена (ТекВидЦены)
   Запрос.УстановитьПараметр("РозничныйВидЦены",<<?>>ТекВидЦены); (Проверка: Сервер)


Понимаю, что метод неприличный, но сейчас надо набросать суть кода, а потом буду искать по конфигурации, где этот самый вид цены из настроек выудить).

Кто подскажет, как его получить?) Пробовала в ПриСозданииНаСервере в форме списка и в реквизиты документа эту дребедень загнала на тестовой базе, толку нуль). Как быть?)


LexaK

ну и правильно, даже мне не понятно, что такое ТекВидЦены? Где определяется? Чем заполняется?
так как используете менеджер, то все данные надо указывать явно,  передавать в параметры процедуры/функции.
если помогло нажмите: Спасибо!

ToryFree

Цитата: LexaK от 16 июл 2020, 23:38
ну и правильно, даже мне не понятно, что такое ТекВидЦены? Где определяется? Чем заполняется?
так как используете менеджер, то все данные надо указывать явно,  передавать в параметры процедуры/функции.
В данном случае я обошлась - по товару в Рознице программно устанавливается только розничная цена, причем единственная - это уникальный комплект, делающийся Сборкой. Так что брала единственную запись по нему в регистре ЦеныНоменклатуры.
Но это частная ситуация.
А проблема была в том, что, если я в менеджере документа Сборка добавляю новую печатную форму, то данные для нее надо было выбирать запросом, в котором, как первоначально казалось, нужен отбор по значению параметра. А параметр - конкретный элемент справочника ВидыЦен, который я назвала ТекВидЦены. А получить его в менеджере было нельзя.
Поэтому и возник вопрос - где его получить, чтобы потом передать в менеджер, и как передать.
В будущем такая проблема опять может возникнуть, поэтому буду очень благодарна за совет). Возможно, надо в принципе задачу решать иначе).

АлександрВладимирович

Просто получить конкретный элемент справочника ВидыЦен можно так:

ТекВидЦены = Справочники.ВидыЦен.НайтиПоКоду("код элемента");

или так:

ТекВидЦены = Справочники.ВидыЦен.НайтиПоНаименованию("наименование элемента");

или так:

ТекВидЦены = Справочники.ВидыЦен.ПолучитьСсылку(Новый УникальныйИдентификатор("уид элемента"));

НО

так делать методически неверно

ToryFree

Цитата: АлександрВладимирович от 17 июл 2020, 14:38
Просто получить конкретный элемент справочника ВидыЦен можно так:

ТекВидЦены = Справочники.ВидыЦен.НайтиПоКоду("код элемента");

или так:

ТекВидЦены = Справочники.ВидыЦен.НайтиПоНаименованию("наименование элемента");

или так:

ТекВидЦены = Справочники.ВидыЦен.ПолучитьСсылку(Новый УникальныйИдентификатор("уид элемента"));

НО

так делать методически неверно
ВО-первых, я пробовала найти по наименованию - это в менеджере не работало, отсюда и вопрос.
Во-вторых - как методически правильно искать элемент справочника в 8.3? Я и сама собиралась производить раскопки в коде, чтобы понять, из каких источников и настроек берутся нужные мне значения организации, магазина, склада, пользователя, даты и т.д. Но, если Вы что-то подскажете из методик - буду очень благодарна!)
Обидно изобретать велосипеды).

АлександрВладимирович

Проверил на УТ демо, именно в модуле менеджера документа "СборкаТоваров". Находит.
ТекВидЦены = Справочники.ВидыЦен.НайтиПоНаименованию("Розничная");

А по хранению настроек, если попроще - то в константах, если посложнее - пытался разобраться, но заблудился в коде.

alexandr_ll

Цитата: ToryFree от 16 июл 2020, 22:50
Вопрос от новичка в 8.3).

Нужно сделать нестандартную форму печати в документе СборкаТоваров (конфигурация Розница).
Туда должна попасть розничная цена комплекта из регистра сведений ЦеныНоменклатурыСрезПоследних.
При попытке передать в запрос значение параметра ТекВидЦены (то, что цена - - розничная), выдается сообщение
{Документ.СборкаТоваров.МодульМенеджера(1002,47)}: Переменная не определена (ТекВидЦены)
   Запрос.УстановитьПараметр("РозничныйВидЦены",<<?>>ТекВидЦены); (Проверка: Сервер)


Понимаю, что метод неприличный, но сейчас надо набросать суть кода, а потом буду искать по конфигурации, где этот самый вид цены из настроек выудить).

Кто подскажет, как его получить?) Пробовала в ПриСозданииНаСервере в форме списка и в реквизиты документа эту дребедень загнала на тестовой базе, толку нуль). Как быть?)
В "рознице 2.3" вид цены можно получить по ссылке из реквизита "Правило ценообразования" для магазина в документе.

Теги: менеджер 

Похожие темы (5)

Рейтинг@Mail.ru

Поиск