Помогите разобраться с единицами измерения в Комплексной Автоматизации 2.0 #773061


#0 by АндрейВоронин
Доброго времени суток! Пытаюсь разобраться со справочником "УпаковкиЕдиницыИзмерения". В нём реквизит "ЕдиницаИзмерения" - это СправочникСсылка "УпаковкиЕдиницыИзмерения". Как в демо базе создаю единицу "штуки", код "796", владелец - СправочникСсылка.НаборыУпаковок.БазоваяЕдиницаИзмерения. Теперь хочу заполнить "УпаковкиЕдиницыИзмерения" с учётом владельца соответствующей номенклатурой. Пишу такой код: СпрЕд=Справочники.УпаковкиЕдиницыИзмерения; И смотрю в отладчике. Всё записывается кроме единиц измерения. В отладчике видно, что НовыйОбъект.ЕдиницаИзмерения становится "штуками", но после выполнения НовыйОбъект.Записать штуки пропадают и в этот реквизит запись не происходит. Подскажите почему запись не проходит? Как в таком случае организовать запись?
#1 by Cyberhawk
потому что владелец элемента справочника - элемент справочника "НаборыЕИ", в этом случае реквизит ЕИ пустой
#2 by Cyberhawk
+ поправка: не "НаборыЕИ", а "НаборыУпаковок" + еще и предопределенные
#3 by Cyberhawk
Еще и реквизит ТипИзмеряемойВеличины заполнять надобно...
#4 by АндрейВоронин
Тогда, пожалуйста, объясните такой момент. Смотрю демо базу. Там в "УпаковкиЕдиницыИзмерения" такие данные: очередной элемент: То есть в демо базе все реквизиты заполняются? ТипИзмеряемойВеличины задал
#5 by АндрейВоронин
Другими словами как организовать запись в справочник, если есть такая закольцовка: реквизит справочника имеет тип СправочникСсылка.Этот же справочник?
#6 by Cyberhawk
Никакой закольцовки нет, все базовые ЕИ ссылаются (через владельца) на предопределенные наборы упаковок, а реквизит "ЕИ" у них не заполнена. Все производные ЕИ (упаковки) ссылаются (через владельца) либо на номенклатуру, либо непредопределенные наборы упаковок, а реквизит "ЕИ" у них - это базовая ЕИ (см. выше)
#7 by Cyberhawk
Я бы тебе посоветовал завести в пользовательском режиме нужную тебе ЕИ, убедиться, что результат удовлетворительный (по документам и движениям), потом посмотреть все реквизиты и уже только тогда по образу и подобию заводить ЕИ программно (в режиме загрузки)
#8 by АндрейВоронин
Загвоздка в том, что никаких документов нет, база чистая и туда переносится номенклатура из старой базы 7.7. Можно только сравнить с демо базой. Все производные ЕИ (упаковки) ссылаются (через владельца) либо на номенклатуру... ,а реквизит "ЕИ" у них - это базовая ЕИ (см. выше) Это вроде понятно, но разве в коде который я писал в самом начале не это реализовано? НайденнаяСсылка=СпрЕд.НайтиПоКоду("796"); НовыйОбъект.Владелец=Ссылка на номенклатуру НовыйОбъект.ЕдиницаИзмерения=НайденнаяСсылка;
#9 by АндрейВоронин
Причём ведь в отладчике видно, что выполнение строки НовыйОбъект.ЕдиницаИзмерения=НайденнаяСсылка; проходит, штуки присваиваются. Если бы что-то было не так то должна же ошибка пройти. А вот следующая строка НовыйОбъект.Записать; всё сбрасывает.
#10 by Cyberhawk
У тебя ТипИзмеряемойВеличины не заполнен и запись идет не в режиме загрузки, поэтому прикладной код конфигурации тебе "обнуляет" этот реквизит. Неужели это так сложно было посмотреть в отладчике?
#11 by Cyberhawk
"А вот следующая строка НовыйОбъект.Записать; Там еще дохрена строк кода выполняется, по F11 жми и если база серверная, то сервер должен быть в режиме отладки
#12 by АндрейВоронин
Тип заполнил, по F11 смотрел, но так не определил где запись теряется. Судя по всему у меня пробел в теории... Можете объяснить, что нужно сделать, что бы реквизит не обнулялся? Или тут без кучи строк кода не обойтись?
#13 by Cyberhawk
Я вроде бы в довольно понятно написал... Поищи код ".ЕдиницаИзмерения = Неопределено" в модулях конфигурации, может быть так сообразишь, раз "по F11 смотрел, но так не определил где запись теряется"...
#14 by АндрейВоронин
Я вроде бы в довольно понятно написал... Имеется в виду "запись идет не в режиме загрузки"? К сожалению это для меня набор слов... Я с этой версией раньше не работал никогда, документации нет, всё приходится методом тыка изучать. Помогла строка НовыйОбъект.ОбменДанными.Загрузка = Истина; Но вы мне хорошо помогли, подсказали направление, где нужно внимательнее разобраться и найти причину. Искренне благодарю за помощь! Хорошего дня!
#15 by Cyberhawk
Да, "режим загрузки" - это когда "ОбменДанными.Загрузка = Истина"
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С