Реквизит формы

1. Maxis 14.07.08 10:42 Сейчас в теме
С помощью внешней обработки импортирую данные по контрагентам в типовую Бухгалтерию (1.6.9.4). В форме элемента справочника Контрагенты есть реквизит ВходитВХолдинг. Он везде должен быть = Ложь. Код (там, где идет присвоение = Ложь):

Пока Не ПустаяСтрока(Страница.Cells(НомерСтроки,НомерКолонки).Value) Цикл
...
Контрагент=Справочники.Контрагенты.СоздатьЭлемент();
Контрагент.ПолучитьФорму("ФормаЭлемента").ЭлементыФормы.ВходитВХолдинг.Значение = Ложь;
...
КонецЦикла;

приводит к завершению работы сеанса 1С:Предприятие в записью ошибки в дамп. Как заполнить этот реквизит формы? (по умолчанию везде он проставляется = Истина)
+
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. poppy 14.07.08 11:30 Сейчас в теме
Может стоит эту форму открыть, но потом устанавливать ее реквизит?... Шутка. ;-)

Установка реквизитов формы при импорте данных - типовая ошибка начинающего программиста.

Хороший семерочник написал бы так:
Код
Контрагент=Справочники.Контрагенты.СоздатьЭлемент(); 
// Заполнение других реквизитов
Контрагент.Записать();
Контрагент.ГоловнойКонтрагент = Контрагент.Ссылка;
Контрагент.Записать();
Показать полностью


В восьмерке появились методы ПолучитьСсылкуНового(), УстановитьСсылкуНового(<Ссылка>), ПолучитьСсылку(<Уникальный идентификатор>) для того чтоб не писать два раза Записать();
+
3. Maxis 14.07.08 11:48 Сейчас в теме
Большое спасибо, poppy!
+
4. dotBY 17.07.08 21:27 Сейчас в теме
а если реквизит типа Булево - так его можно вообще не трогать, потому как по-умолчанию булев реквизит имеет значение ЛОЖЬ
+
5. poppy 17.07.08 23:59 Сейчас в теме
долби, похоже ты ничего не понял... :(
+
6. dotBY 18.07.08 11:32 Сейчас в теме
поппи, может я чего-то действительно не понял... так ты поясни
+
7. poppy 18.07.08 20:55 Сейчас в теме
2dotby

Если бы речь шла об реквизите справочника, то его можно было бы не трогать.

Но, с реквизитами формы, которые они видят на экране, но не знают где они хранятся, часто возникают трудности у новичков.

Как правило, значение устанавливается в процедуре ПриОткрытии(), которое зависит как правило от других реквизитов. Поэтому "не троганье" здесь не прокатит.
+
Внимание! Тема сдана в архив

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот