Заказы на доработку 1С (сервис удаленной работы)

Хранилище

База знаний
Неназначенных незавершенных заказов: 2, свеженьких 1
Бесплатные отчеты, обработки, конфигурации, внешние компоненты для 1С Статьи, описание работы, методики по работе с 1С

Здравствуйте, гость ( Вход | Зарегистрироваться )

> Ошибка при создании новой номенклатуры программно          
leikar Подменю пользователя
сообщение 27.06.18, 13:04
Сообщение #1

Молчаливый
*
Группа: Пользователи
Сообщений: 2
Спасибо сказали: 0 раз
Рейтинг: 0

Цитата

1С:Предприятие 8.3 (8.3.10.2667)
"Управление производственным предприятием для Украины", редакция 1.3 (1.3.55.1) (http://1c.ua/v8/RegionalSolutions_UA_UPP.php)
Copyright © Molenari OU, 2017-2018. All rights reserved.

Добрый день, я новичек совсем, дали задание доделать внешню обработку выгрузки приходных накладных из медок путем медовой стыковки. Все вроде как работает, заполняет и создает документ, но единственный момент - нет единиц измерения в документе, захожу в номенклатуру - позиции созданы, базовая ед. измерения заполнена (Пример на картинке по ссылке [необходимо зарегистрироваться для просмотра ссылки])
Если нажать кнопку "ОК" номенклатура проведется и теперь будет в документе отображаться ед. зимерения как должно, но как это сделать программно? Вот мой код
Процедура СозданиеНоменклатуры(ДатаДокаВх,  НомерДокаВх,  НоменклатураОригинал,  НаОсновании,  ЕИОригинал,  НомСтавкаНДС, ВидНоменклатуры,  НоменклатураАртикул)
//бутко
    ГруппаМедка = Справочники.Номенклатура.НайтиПоКоду("ШИЙ00019795");
    Если НЕ ЗначениеЗаполнено(ГруппаМедка) тогда
        ГруппаОбъект  =  Справочники.Номенклатура.СоздатьГруппу();
        ГруппаОбъект.Наименование  =  "Auto_MEDoc";  
        ГруппаОбъект.Код = "MED";
        ГруппаОбъект.Записать();
    КонецЕсли;
    НоменклатураМедка = Справочники.Номенклатура.СоздатьЭлемент();
    
    НоменклатураМедка.Родитель = Справочники.Номенклатура.НайтиПоКоду("ШИЙ00019795");
    НоменклатураМедка.Наименование =  НоменклатураОригинал;
    НоменклатураМедка.НаименованиеПолное =  НоменклатураОригинал;
    НоменклатураМедка.ЕдиницаДляОтчетов= Справочники.КлассификаторЕдиницИзмерения.НайтиПоНаименованию(ЕИОригинал);
    
        
    
    НоменклатураМедка.Артикул=  НоменклатураАртикул;
    
    НоменклатураМедка.Комментарий =  Строка(НСтр("ru = 'Создана M.E.Doc IS на основании ';uk = 'Створена M.E.Doc IS на підставі '") +
    НаОсновании + Строка(НомерДокаВх) + НСтр("ru = 'от ';uk = 'від '") + ДатаДокаВх);
    //Если ВидНоменклатуры = "Запчасть" Тогда
    //НоменклатураМедка. Запчасть = Истина;
    //КонецЕсли;
    ЕдИзмНоменклатуры  = Справочники.КлассификаторЕдиницИзмерения.НайтиПоНаименованию(ЕИОригинал);

    Если ЗначениеЗаполнено(ЕдИзмНоменклатуры) Тогда

        НоменклатураМедка.БазоваяЕдиницаИзмерения =  ЕдИзмНоменклатуры;

    КонецЕсли;
    НоменклатураМедка.СтавкаНДС = НомСтавкаНДС;
                        
    Если ИмяБазы="УТ" или ИмяБазы="УТП" или ИмяБазы="УПП" Тогда
        НоменклатураМедка.ВидНоменклатуры = Справочники.ВидыНоменклатуры.НайтиПоНаименованию(ВидНоменклатуры);
    КонецЕсли;        Сообщить(1);
    НоменклатураМедка.Записать();
       Сообщить(2);
        ЕИНовая=Справочники.ЕдиницыИзмерения.СоздатьЭлемент();  Сообщить(3);
                            
              Сообщить(4);    
        Врем= Справочники.КлассификаторЕдиницИзмерения.НайтиПоНаименованию(ЕИОригинал);
        Сообщить(Врем.Код);
        ЕСЛИ НЕ Врем.Пустая()Тогда           Сообщить(5);  
           ЕИНовая.ЕдиницаПоКлассификатору = Врем;     Сообщить(6);
                
        ЕИНовая.Коэффициент="1";                            Сообщить("6.5");
        ЕИНовая.Владелец=  НоменклатураМедка;                  Сообщить(7);

        ЕИНовая.Записать();                            Сообщить(8);
        //НоменклатураМедка.ЕдиницаДляОтчетов=    ЕИНовая;      Сообщить(8);
    //    НоменклатураМедка.ЕдиницаХраненияОстатков=    ЕИНовая;
    //    НоменклатураМедка.БазоваяЕдиницаИзмерения=    ЕИНовая;     Сообщить(9);
        
        НоменклатураМедка.Записать();             Сообщить(10);
        КонецЕсли;
                      Сообщить(11);
КонецПроцедуры


Пробовал уже разные способы, но когда я создаю ед. измерения вручную(всмысле программно, просто не только пишу создать номенклатуру, но и создать ед. измерения и присвоить ее номенклатуре) выдает ошибку что не все сделано, но что "это" не все я не знаю. Если есть другой способ более подходящий для данного случая, очень прошу подсказать Вас. Большое спасибо!

Bernet Подменю пользователя
сообщение 27.06.18, 13:07
Сообщение #2

Почти ветеран
Иконка группы
Группа: Местный
Сообщений: 628
Из: Хмельницкий
Спасибо сказали: 195 раз
Рейтинг: 177.1

leikar @ Сегодня, 14:04 * ,
Найдите место, где создается документ поступления и заполняется таб. часть "Товары", там должно быть заполнение единицы измерения в строке таб. части. Если такой строчки нет, то можно добавить.


Signature
Дописываю конфигурации на платформе 8.х.
- Управление торговым предприятием для Украины
- Управление производственным предприятием для Украины
- Управление небольшой фирмой для Украины
- Бухгалтерия для Украины;
- Общепит для Украины
- Ресторан (Рарус)
- Розница

leikar Подменю пользователя
сообщение 27.06.18, 13:47
Сообщение #3

Молчаливый
*
Группа: Пользователи
Сообщений: 2
Спасибо сказали: 0 раз
Рейтинг: 0



[Решено]
Процедура СозданиеНоменклатуры(ДатаДокаВх,  НомерДокаВх,  НоменклатураОригинал,  НаОсновании,  ЕИОригинал,  НомСтавкаНДС, ВидНоменклатуры,  НоменклатураАртикул)
//Юля
    ГруппаМедка = Справочники.Номенклатура.НайтиПоКоду("ШИЙ00019795");
    Если НЕ ЗначениеЗаполнено(ГруппаМедка) тогда
        ГруппаМедка  =  Справочники.Номенклатура.СоздатьГруппу();
        ГруппаМедка.Наименование  =  "Auto_MEDoc";  
        ГруппаМедка.Код = "MED";
        ГруппаМедка.Записать();
    КонецЕсли;
    НоменклатураМедка = Справочники.Номенклатура.СоздатьЭлемент();
    
    НоменклатураМедка.Родитель = ГруппаМедка;
    НоменклатураМедка.Наименование =  НоменклатураОригинал;
    НоменклатураМедка.НаименованиеПолное =  НоменклатураОригинал;
    НоменклатураМедка.ЕдиницаДляОтчетов= Справочники.КлассификаторЕдиницИзмерения.НайтиПоНаименованию(ЕИОригинал);
    НоменклатураМедка.Артикул=  НоменклатураАртикул;
    НоменклатураМедка.Комментарий =  Строка(НСтр("ru = 'Создана M.E.Doc IS на основании ';uk = 'Створена M.E.Doc IS на підставі '") +
    НаОсновании + Строка(НомерДокаВх) + НСтр("ru = 'от ';uk = 'від '") + ДатаДокаВх);
    НоменклатураМедка.СтавкаНДС = НомСтавкаНДС;
    //НоменклатураМедка.Записать();
    
    //Если ВидНоменклатуры = "Запчасть" Тогда
    //НоменклатураМедка. Запчасть = Истина;
    //КонецЕсли;
                        
    Если ИмяБазы="УТ" или ИмяБазы="УТП" или ИмяБазы="УПП" Тогда
        НоменклатураМедка.ВидНоменклатуры = Справочники.ВидыНоменклатуры.НайтиПоНаименованию(ВидНоменклатуры);
    КонецЕсли;        
    НоменклатураМедка.Записать();
Сообщить("НоменклатураМедка");    
Сообщить(НоменклатураМедка);    
Сообщить(НоменклатураМедка.Код);    
    ЕдИзмНоменклатура = Справочники.ЕдиницыИзмерения.СоздатьЭлемент();  Сообщить(3);
    ЕдИзмНоменклатура.Владелец =  НоменклатураМедка.Ссылка;                  Сообщить(5);
    ЕдИзмНоменклатура.Наименование =  ЕИОригинал;                  Сообщить(7);
    ЕдИзмНоменклатура.Коэффициент = 1;                            Сообщить("6.5");
    ЕдИзмКлассификатор  = Справочники.КлассификаторЕдиницИзмерения.НайтиПоНаименованию(ЕИОригинал);
Сообщить("ЕдИзмКлассификатор");    
Сообщить(ЕдИзмКлассификатор);    
Сообщить(ЕдИзмКлассификатор.Код);    
       ЕдИзмНоменклатура.ЕдиницаПоКлассификатору = ЕдИзмКлассификатор;     Сообщить(6);
    ЕдИзмНоменклатура.Записать();
Сообщить("ЕдИзмНоменклатура");    
Сообщить(ЕдИзмНоменклатура);    
Сообщить(ЕдИзмНоменклатура.Код);    
    НоменклатураМедка.БазоваяЕдиницаИзмерения =  ЕдИзмКлассификатор;
    НоменклатураМедка.ЕдиницаХраненияОстатков =  ЕдИзмНоменклатура.Ссылка;
    НоменклатураМедка.ЕдиницаДляОтчетов =  ЕдИзмНоменклатура.Ссылка;
    НоменклатураМедка.ЕдиницаИзмеренияМест =  ЕдИзмНоменклатура.Ссылка;
    НоменклатураМедка.Записать();             Сообщить(10);

    
КонецПроцедуры

Не нашли ответа на свой вопрос?
Зарегистрируйтесь и задайте новый вопрос.


Ответить Новая тема
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

RSS Текстовая версия Сейчас: 18.07.18, 23:47
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!

Курсы валют: доллар США к гривне Курсы валют: евро к гривне Курсы валют: российский рубль к гривне