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

Как подставить в табл.часть значение реквизита выбранного элемента справочника?

Автор Дммитррий, 23 мая 2023, 06:59

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

Дммитррий

Добрый день, пишу простенькую конфигурацию и обработку к ней (в целях обучения), столкнулся с рядом проблем, которые никак не выходит решить.
Суть в чем:
Есть справочник "Товары", у него есть реквизиты - КоличествоТовараВУпаковке, ОбъемУпаковки, ВесУпаковки, ЦенаУпаковки
Есть документ "ПродажаТовара", у него есть табличная часть с реквизитами - Товар, КоличествоТовараВУпаковке, ОбъемУпаковки, ВесУпаковки, ЦенаУпаковки (Поле реквизита Товар выбирается из спр. Товары.)

Задача 1:
При выборе Товара в поле табличной части документа ПродажаТовара, надо чтобы заполнялись поля: КоличествоТовараВУпаковке, ОбъемУпаковки, ВесУпаковки, ЦенаУпаковки (также данными из справочника).

Задача 2:
Обработка должна суммировать вес и объем всех товаров в документе, после чего сообщать эту информацию пользователю.

Заранее безумно благодарю...

Максим75

Дммитррий, вот по задаче 1 только было уже здесь, детально все описали как и чего.
по задаче 2: в обработчике товара при изменении написать что-то такое:

СтрокаТабличнойЧасти = Элементы.ТМЦ.ТекущиеДанные;
СтрокаТаблЧасти.Сумма = СтрокаТаблЧасти.Цена*СтрокаТаблЧасти.Колво;;

заменить на свои реквизиты (здесь сумма считается)

Дммитррий


fruitella

Дммитррий, чтобы решить первую задачу, тебе надо всегда продумать логику решения и разбить задачу на подзадачи.
1. Надо получить данные из справочника. Как это сделать? Через глобальный контекст ссылка или через sql запрос, написав который можно воспользоваться конструктором.
2. Пройтись циклом по объекту, где ты получил данные и записать их в документ.
3. Просить решение не правильный подход, вот пример можно. Посмотри тут прям пошаговая инструкция: https://dzen.ru/a/Ypsbz_FMjyl7u7E3

fruitella


Максим75

Дммитррий, в управляемых формах все по первому вопросу просто:

открываем конструктор формы документа.
разворачиваем в реквизитах объект, находим Товар или ТМЦ или как там у Вас задана номенклатура.
Разворачиваем ее и тащим мышом в Элементы нужные реквизиты.
таким образом при выборе номенклатуры, все что с ней связано заполнится автоматом и никакого кода писать не нужно.

Дммитррий

fruitella, я правильно понимаю, что кнопка "Добавить" (в таком случае) будет существовать без надобности?

Дммитррий

fruitella, где можно посмотреть пример подобного обхода? А то пока (по этому гайду) получается только залить весь справочник в табличную часть документа

fruitella

Дммитррий, Надо тогда сделать добавление по выбранному значению. Вроде есть возможность обмена данными через временное хранилище. Почитай о нем тоже.
Принцип вроде будет работать такой: Пользователь выбирает определенный товар, объектом будет являться ВыбранноеЗначение его передаешь как аргумент в функцию. Затем уже в самой функции или в процедуре (не важно) на сервере, ты получаешь адрес выбранного значения.
Теперь дело за малым, проходимся циклом по переменной, которой ты присвоил получение адреса из временного хранилища и вытягиваем данные и передаем в табличную часть ну или куда тебе нужно.

У меня выстраивается лишь такая логика.

Дммитррий

Максим75, А как к таким (скопированным) реквизитам обращаться в коде? Если мне хочется посчитать какой-то другой реквизит (Скопировал из справочника цену товара, руками внес количество товара, надо чтоб считалась сумма)

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

Рейтинг@Mail.ru

Поиск