Форум на Kuban.ru (http://forums.kuban.ru/)
-   Территория 1С (http://forums.kuban.ru/f1040/)
-   -   УТ 11.3 Программное создание единиц измерения (http://forums.kuban.ru/f1040/ut_11_3_programmnoe_sozdanie_edinic_izmereniya-8403329.html)

bvb 19.07.2017 14:06

УТ 11.3 Программное создание единиц измерения
 
Перекачиваю данные из УТ 10.3
Нужно по аналогии создать две единицы :
Бутылку и коробку с соответствующими коэффициентами весами и объемами

Я не понимаю логику :
1. Зачем заданы весовые и объемные характеристики в самом справочнике Номенклатура
2. Как Создавать единицу измерения Коробка и где она отражается в карточке номенклатуры
3. Почему справочник "УпаковкиЕдиницыИзмерения"
ссылается сам на себя - реквизиты :
ВесЕдиницаИзмерения , ВысотаЕдиницаИзмерения, ШиринаЕдиницаИзмерения, ГлубинаЕдиницаИзмерения

ниже привожу код создающий единицы измерения :

//Единицы измерения
СпрОбъект.ЕдиницаИзмерения = НайтиСоздатьЕдиницуИзмерения (СпрОбъект.Ссылка ,COMНоменклатура);
СпрОбъект.алкОсновнаяУпаковка = СпрОбъект.ЕдиницаИзмерения;

Если COMНоменклатура.ЕдиницаХраненияОстатков.Вес <> 0 Тогда
СпрОбъект.ВесИспользовать = ИСТИНА;
СпрОбъект.ВесЗнаменатель = 1;
СпрОбъект.ВесЧислитель = COMНоменклатура.ЕдиницаХраненияОстатков.Вес;
СпрОбъект.ВесЕдиницаИзмерения = СпрОбъект.ЕдиницаИзмерения;
КонецЕсли;

Если COMНоменклатура.ЕдиницаХраненияОстатков.Объем <> 0 Тогда
СпрОбъект.ОбъемИспользовать = ИСТИНА;
СпрОбъект.ОбъемЗнаменатель = 1;
СпрОбъект.ОбъемЧислитель = COMНоменклатура.ЕдиницаХраненияОстатков.Объем;
СпрОбъект.ОбъемЕдиницаИзмерения = СпрОбъект.ЕдиницаИзмерения;
Иначе
СпрОбъект.ОбъемИспользовать = ИСТИНА;
СпрОбъект.ОбъемЗнаменатель = 1;
СпрОбъект.ОбъемЧислитель = COMНоменклатура.алкЕмкость;
СпрОбъект.ОбъемЕдиницаИзмерения = СпрОбъект.ЕдиницаИзмерения;
КонецЕсли;ункция НайтиСоздатьЕдиницуИзмерения(Номенклатура , COMНоменклатура)

СпрЕд = Справочники.УпаковкиЕдиницыИзмерения.НайтиПоКоду(COMНоменклатура.ЕдиницаХраненияОстатков.ЕдиницаПоКлассификатору.Код,,,);

Если СпрЕд.Пустая() Тогда
СпрЕд = Справочники.УпаковкиЕдиницыИзмерения.СоздатьЭлемент();
СпрЕд.Владелец = Номенклатура;
СпрЕд.Код = COMНоменклатура.ЕдиницаХраненияОстатков.ЕдиницаПоКлассификатору.Код;
СпрЕд.Наименование = COMНоменклатура.ЕдиницаХраненияОстатков.ЕдиницаПоКлассификатору.Наименование;
Иначе
СпрЕд = СпрЕд.ПолучитьОбъект();
КонецЕсли;

СпрЕд.Наименование = COMНоменклатура.ЕдиницаХраненияОстатков.ЕдиницаПоКлассификатору.НаименованиеПолное;
СпрЕд.ТипИзмеряемойВеличины = Перечисления.ТипыИзмеряемыхВеличин.КоличествоШтук;
СпрЕд.Вес = COMНоменклатура.ЕдиницаХраненияОстатков.Вес;

Если COMНоменклатура.ЕдиницаХраненияОстатков.Объем <> 0 Тогда
СпрЕд.Объем = COMНоменклатура.ЕдиницаХраненияОстатков.Объем;
Иначе
СпрЕд.Объем = COMНоменклатура.алкЕмкость;
КонецЕсли;
СпрЕд.Записать();

Возврат СпрЕд.Ссылка;

КонецФункции


Текущее время: 17:08. Часовой пояс GMT +3.