Создаю программно элемент справочника склады. Пишет, что преобразование к типу булево невозможно при записи. Подскажите, какие реквизиты надо заполнить, чтобы такого не возникало?
Вы не поверите, но это косяк типовой записи в 1с. Они не учитывают, что в выборке может не быть записей, оттуда и ошибка. Пришлось добавить условие "если выборка.Количество()>0 тогда" - этого нет в типовой, но при программном создании без этого не получится.
Процедура ОбновитьФлагКонтроляОперативныхОстатков()
Если ДополнительныеСвойства.Свойство("ПропуститьОбновлениеФлагаКонтроляОперативныхОстатков") Тогда
Возврат;
КонецЕсли;
УстановитьПривилегированныйРежим(Истина);
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ ПЕРВЫЕ 1
| ВЫБОР
| КОГДА ПолитикиУчетаСерий.ПолитикаУчетаСерий ЕСТЬ NULL
| ТОГДА ЛОЖЬ
| ИНАЧЕ ПолитикиУчетаСерий.ПолитикаУчетаСерий.УказыватьПриПланированииОтбора
| КОНЕЦ КАК КонтролироватьОперативныеОстатки
|ИЗ
| Справочник.Склады КАК Склады
| ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ВидыНоменклатуры.ПолитикиУчетаСерий КАК ПолитикиУчетаСерий
| ПО Склады.Ссылка = ПолитикиУчетаСерий.Склад
|ГДЕ
| Склады.Ссылка = &Склад";
Запрос.УстановитьПараметр("Склад", Ссылка);
Выборка = Запрос.Выполнить().Выбрать();
Выборка.Следующий();
если выборка.Количество()>0 тогда
Если Выборка.КонтролироватьОперативныеОстатки Тогда
КонтролироватьОперативныеОстатки = Истина;
КонецЕсли;
КонецЕсли;
КонецПроцедуры
(4)
Параллельно с созданием склада необходимо делать запись в справочник политика учета серий складу. При ручном создании элемент справочника создается автоматически
(5) т.е. флаг обновляется перед записью элемента?
Прикольно написали наши друзья из 1С. Элемента в базе еще нет, но его флаг надо проверить. ИМХО, там логично было бы сделать:
Если Выборка.Следующий() Тогда
...
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший