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

Хранилище

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

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



> Создание подчиненного справочника програмно , Не подтягивает единицы          
Flexy Подменю пользователя
сообщение 18.10.12, 20:33
Сообщение #1

Танцор с Бубном
Иконка группы
Группа: Местный
Сообщений: 1121
Из: Днепра
Спасибо сказали: 230 раз
Рейтинг: 0

Добрый Вечер. ТИС 7.7.

Пишу обработку по загрузке Товаров из Excel.
Все вроде бы нормально.Элемент записываеться.Но в расходную накладную при выборе товара не подтягивается из подчиненного справочника
единица товара ("шт"). Хотя на форме товара реквизит "ЕдиницаПоУмолчанию" заполнен. Если я его в форме выбираю по новой и перезаписываю элемент, то в Расходную все четко подтягиваеться.

Не пойму, в чем дело? Куда Копать?

Заранее Спасибою

Код:

СпрНоменклатура.Новый();
    
    //Реквизиты Номенклатуры///////////////////
    
    СпрНоменклатура.ИспользоватьДату('01.01.1980');
    
    СпрНоменклатура.Наименование = НаименованиеТовара;
    
    СпрНоменклатура.БазоваяЕдиница=Константа.ТипБазовойЕдиницыПоУмолчанию;
        
    
    СпрНоменклатура.Записать();


    
//Подчиеннный - "Единицы"///
    
    ЕдиницыТовара = СоздатьОбъект("Справочник.Единицы");
    ЕдиницыТовара.ИспользоватьВладельца(СпрНоменклатура.ТекущийЭлемент());
    ЕдиницыТовара.ИспользоватьДату('01.01.1980');    
    
    ЕдиницыТовара.ВыбратьЭлементы();
    Пока ЕдиницыТовара.ПолучитьЭлемент() = 1 Цикл
        Если ЕдиницыТовара.Единица = СпрНоменклатура.БазоваяЕдиница Тогда
            // есть базовая, создавать ее не надо
            Базовая = ЕдиницыТовара.ТекущийЭлемент();
        КонецЕсли;
    КонецЦикла;
    
    Если ПустоеЗначение(Базовая) = 1 Тогда
        НоваяБазоваяЕдиница = СоздатьОбъект("Справочник.Единицы");
        НоваяБазоваяЕдиница.ИспользоватьВладельца(СпрНоменклатура.ТекущийЭлемент());
        НоваяБазоваяЕдиница.Новый();
        НоваяБазоваяЕдиница.Наименование = СпрНоменклатура.БазоваяЕдиница.Наименование;
        НоваяБазоваяЕдиница.Единица = СпрНоменклатура.БазоваяЕдиница;
        //НоваяБазоваяЕдиница.Вес = Вес;
        НоваяБазоваяЕдиница.Коэффициент = 1;
        НоваяБазоваяЕдиница.Штрихкод = ШтрихкодТовара;
        
        Попытка
            НоваяБазоваяЕдиница.Записать();
            //Записали базовую
            ЗаписалиБазовую = 1;
        Исключение
            Предупреждение("Невозможно создать единицу измерения.");
            Возврат;
        КонецПопытки;
    
    КонецЕсли;

    // сделаем ее единицей измерения по умолчанию
    Если ПустоеЗначение(СпрНоменклатура.ЕдиницаПоУмолчанию) = 1 Тогда
        Если ПустоеЗначение(Базовая) = 1 Тогда
            ЕдиницаПоУмолчанию = НоваяБазоваяЕдиница.ТекущийЭлемент();
        Иначе
            ЕдиницаПоУмолчанию = Базовая;
        КонецЕсли;    
    КонецЕсли;

vnbsoft Подменю пользователя
сообщение 18.10.12, 20:51
Сообщение #2

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

Если ПустоеЗначение(СпрНоменклатура.ЕдиницаПоУмолчанию) = 1 Тогда
        Если ПустоеЗначение(Базовая) = 1 Тогда
            СпрНоменклатура.ЕдиницаПоУмолчанию = НоваяБазоваяЕдиница.ТекущийЭлемент();
        Иначе
            СпрНоменклатура.ЕдиницаПоУмолчанию = Базовая;
        КонецЕсли;    
КонецЕсли;
СпрНоменклатура.Записать();


Может так попробовать?

 i 

Для выделения кода нужно использовать тег, а не цвет
 


Сообщение отредактировал MATEVI - 18.10.12, 20:54

Flexy Подменю пользователя
сообщение 18.10.12, 20:58
Сообщение #3

Танцор с Бубном
Иконка группы
Группа: Местный
Сообщений: 1121
Из: Днепра
Спасибо сказали: 230 раз
Рейтинг: 0

Цитата(vnbsoft @ 18.10.12, 20:51) *
Если ПустоеЗначение(СпрНоменклатура.ЕдиницаПоУмолчанию) = 1 Тогда
        Если ПустоеЗначение(Базовая) = 1 Тогда
            СпрНоменклатура.ЕдиницаПоУмолчанию = НоваяБазоваяЕдиница.ТекущийЭлемент();
        Иначе
            СпрНоменклатура.ЕдиницаПоУмолчанию = Базовая;
        КонецЕсли;    
КонецЕсли;
СпрНоменклатура.Записать();


Может так попробовать?

Та есть там у меня в самом внизу в коде метод Записать(). Но все равно ни фига icon_cuss.gif

vnbsoft Подменю пользователя
сообщение 18.10.12, 21:00
Сообщение #4

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

Внимательнее смотрите код. Вы устанавливаете переменную ЕдиницаПоУмолчанию, а надо устанавливать реквизит справочника.

Спасибо сказали: Flexy,

Flexy Подменю пользователя
сообщение 18.10.12, 21:08
Сообщение #5

Танцор с Бубном
Иконка группы
Группа: Местный
Сообщений: 1121
Из: Днепра
Спасибо сказали: 230 раз
Рейтинг: 0

Цитата(vnbsoft @ 18.10.12, 21:00) *
Внимательнее смотрите код. Вы устанавливаете переменную ЕдиницаПоУмолчанию, а надо устанавливать реквизит справочника.

Ткните носом пожалуйста icon_beer17.gif

Во йо-ма-йо заработался...

Банальная ошибка от переутомления... faceoff.gif

Спасибо, а то код скопипастил с формы спр номенклатуры, но не везде подправил.

Пора на отдых smile.gif) А то шото совсем тупить начал


З.Ы. Ув. Модераторы.ДУмаю темку можно удалить, т.к. она не несет особой смысловой нагрузки smile.gif

Сообщение отредактировал Flexy - 18.10.12, 21:18

vnbsoft Подменю пользователя
сообщение 18.10.12, 21:10
Сообщение #6

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

Вы пишите "ЕдиницаПоУмолчанию = ...", а надо "СпрНоменклатура.ЕдиницаПоУмолчанию =..."

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


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

 

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