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

Заполнить ТЧ данными справочника

Автор John46, 30 июл 2010, 00:52

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

John46

Процедура ЗаполнитьСтандартноНажатие(Элемент)
   выборка = Справочники.Материалы.Выбрать();
   пока выборка.Следующий() Цикл
      элемент = выборка.ПолучитьОбъект();
      если не элемент.ЭтоГруппа тогда
         новая = Материалы.Добавить();
         новая.Наименование = элемент.Наименование; // эта строка не работает
         новая.Объект = элемент.Родитель;
         новая.Единицы = элемент.Единицы;
         новая.Цена = элемент.Цена;
         новая.Количество = 1;
         ЭлементыФормы.Материалы.ТекущаяСтрока = новая;
         нов = ЭлементыФормы.Материалы.ТекущаяСтрока;
         нов.Сумма = нов.Количество*нов.Цена;
      КонецЕсли;
   КонецЦикла;
КонецПроцедуры

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

John46

Помогло сделать поле Наименование в тч документа составным типом - строка и ССылка на справочник. Правда при одиночном выборе приходится выбипать тип данных, что не очень удобно. если кто знает другие  решения - подскажите.

Slin

Как вариант, делать не наименование, а ссылку на элемент
потому что, на самом деле, нет разницы для тебя, похоже
наименование будет автоматом подставляться

что-то меня смущает
ЭлементыФормы.Материалы.ТекущаяСтрока = новая;
нов = ЭлементыФормы.Материалы.ТекущаяСтрока;
нов.Сумма = нов.Количество*нов.Цена;

не проще ли сразу
новая.Сумма = новая.Количество * новая.Цена

John46

Slin, ты прав - там лишнее, ночью переборщил
Сделал всё намного проще и работает:

Выбор = Новый Запрос( " ВЫБРАТЬ Ссылка как Наименование, Родитель как Объект, Единицы, Цена, 1 как Количество, Цена как сумма
                      |  ИЗ Справочник.Материалы
                      |  ГДЕ Не ЭтоГруппа" );
Материалы.Загрузить(Выбор.Выполнить().Выгрузить());


Выбор = Новый Запрос( " ВЫБРАТЬ Ссылка как Наименование, Родитель как Объект, Единицы, Цена, 1 как Количество, Цена как сумма
                      |  ИЗ Справочник.Работы
                      |  ГДЕ Не ЭтоГруппа" );
Работа.Загрузить(Выбор.Выполнить().Выгрузить());

Slin

Молодец
и, что не маловажно, быстрее работает
:)

John46

Спасибо! Для начинающего приятно слышать))

Теги:

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

Рейтинг@Mail.ru

Поиск