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

Реквизит формы документа не заполняется

Автор kaidj, 20 ноя 2015, 07:22

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

kaidj

Всем доброго времени суток Уважаемые Гуру! Помогите, встрял
Задача такая. Имеется табличная часть "Товары" Формы Документа "Продажа"
Её реквизиты:
- Номенклатура (СправочникСсылка.Номенклатура)
- Упаковка (СправочникСсылка.Упаковка)
- Количество (Число)
- ОбъемУпаковки (Число)
- Объем (Число)
Нужно при заполнении "Номенклатура", "Упаковка", "Количество" что бы автоматически заполнялись реквизиты:
- "ОбъемУпаковки" (из Справочник.Упаковка реквизит "Объем")
- "Объем" (умножить автоматически заполненый реквизит "ОбъемУпаковки" на заполненый реквизит "Количество")
в общем я под эту задачу наваял такой "код":

&НаКлиенте
Процедура ТоварыУпаковкаПриИзменении(Элемент)
   Строка = Элементы.Товары.ТекущиеДанные;
   ЗаполнениеТабличнойЧастиТовары(Строка.Упаковка);
КонецПроцедуры

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

в итоге после сиих манипуляций, ошибки не выдает, ну и не заполняет ничего, что делаю не так?

Natain14

1) У вас в ТЧ Упаковка - это строковый тип,а не ссылочный? если ссылочный, то не понятно, зачем вы проверяете в запросе, что Упаковка.Наименование = &Упаковка
2) Вы в цикле выборки добавляете новые строки, а не заполняете значение в имеющихся

Запросом можно, наверное, сделать так: в запросе взять таблицу Товары документа Продажа и к ней присоединить данные из справочника Упаковка.

cska-fanat-kz

из значения Упаковки текущей строки достаточно получить реквизит "Объем" и присвоить его соответствующему реквизиту текущей строки.

эта элементарная задача разбирается на первых страницах Радченко!
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

ferrari314

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

Теги:

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

Рейтинг@Mail.ru

Поиск