Имя: Пароль:
1C
 
Заполнение СправочникаСсылки
0 iznvi
 
31.10.18
11:46
Ребят как правильно заполнить тип СправочникСсылка ?
https://yadi.sk/i/LiOpADL-1y8feA?
1 Lexey_
 
31.10.18
11:47
(0) правильно - значением этого же типа
2 Ёпрст
 
31.10.18
11:49
(0) Правильно, это получить объект, его и заполнять, потом записывать.
А не реквизитам ссылки что-то пытаться делать
3 Случайный прохожий
 
31.10.18
11:49
(0) Ты пытаешься записать наименование в справочник, вытянув его как реквизит другого справочника? :)
4 Zmich
 
31.10.18
11:49
(0). Получи сперва из ссылки объект.
5 shadow_sw
 
31.10.18
11:49
ответ скорее всего (2)
6 Случайный прохожий
 
31.10.18
11:54
Ладно, напишу код. А то человек сейчас пойдет книжки читать, в 1ске разбираться, а потом будет нам конкуренцию составлять.

Объ = СТРВ.Характеристика.ПолучитьОбъект();
Объ.Наименование = "НеЗаполнено";
Объ.Записать();
7 iznvi
 
31.10.18
12:00
(6)  Значение не является значением объектного типа (ПолучитьОбъект)
Вот такую ошибку выдает
8 shadow_sw
 
31.10.18
12:03
(6) факир был пьян - фокус не удался (7)
9 Случайный прохожий
 
31.10.18
12:04
(7) Покажи что в СТРВ передаешь
10 iznvi
 
31.10.18
12:05
(9) СТРВ=ТаблицаВозврата.Добавить();
11 Ёпрст
 
31.10.18
12:06
(7) ясен пень, у тя в отладке там - пустое значение
12 Случайный прохожий
 
31.10.18
12:06
(8) Так там он весь код какой-то ненужно табличкой закрыл, вот пришлось догадываться)))
13 Случайный прохожий
 
31.10.18
12:07
(10) И как ты характеристику из пустого значения получишь?
14 Случайный прохожий
 
31.10.18
12:08
Код большой? Можешь сюда скинуть?
15 Случайный прохожий
 
31.10.18
12:11
Кароче, я понял что он пытается сделать. У него пустая характеристика, но вместо того чтобы ее создать, он пытается записать в наименование пустого значения строку "НеЗаполнено"
16 iznvi
 
31.10.18
12:12
(13) Вооот, в этом то и вся проблема
Я сначала так же делал,думал что сработает,но
Проблема в том,что при Подборе ВКП мы выбираем Номенклатуру и к ней должна быть подвязана ХарактеристикаНоменклатуры,но она не везде есть,и передается пустое значение, задача в том,что нужно проверить на заполнение эту ссылку и если она заполнена,то все норм,а если нет,то заполнить ее допустим просто "НеЗаполнено" вот. А код на самом деле очень большой,сейчас скину саму процедуру. Народ,извните,если максимально тупые вопросы задаю,но только учусь.
17 iznvi
 
31.10.18
12:12
(15)
18 Случайный прохожий
 
31.10.18
12:13
(0) А может тебе это вообще ненадо? Обьясни что пытаешься сделать
19 iznvi
 
31.10.18
12:13
(18) &НаСервере
Процедура ЗавершитьВводНаСервере()
    
    //ОстаткиНаСкладе
    ТаблицаВозврата=новый ТаблицаЗначений;
    //ТаблицаВозврата.ОстаткиНаСкладе;
    ТаблицаВозврата.Колонки.Добавить("Номенклатура");
    ТаблицаВозврата.Колонки.Добавить("Характеристика");
    ТаблицаВозврата.Колонки.Добавить("Серия");
    ТаблицаВозврата.Колонки.Добавить("Назначение");
    ТаблицаВозврата.Колонки.Добавить("Количество");
    ТаблицаВозврата.Колонки.Добавить("Количество2");
    стр11=-1;
    //ТаблицаВозврата.Очистить();
    //ОстаткиНаСкладе.
    
    для Каждого стрО из ОстаткиНаСкладе цикл
        стр11=стр11+1;
        Если стрО.ДоступноДляРезервирования<стрО.Выбранно тогда
            Модифицированность = Истина;
            
            соо=Новый СообщениеПользователю;
            // соо.ПутьКДанным=стрО.Выбранно;
            
            соо.Текст="Выбрано не допустимое количество";
            соо.Поле="ОстаткиНаСкладе1["+стр11+"].Выбранно";
            соо.УстановитьДанные(стрО.Выбранно);
            соо.Сообщить();
            Возврат;
        КонецЕсли;    
        //Если стрО.Выбранно> 0 тогда
        Если  стрО.ВыбранноКГ > 0 Тогда
            
            СТРВ=ТаблицаВозврата.Добавить();
            СТРВ.Номенклатура=стрО.Номенклатура;
            Если ЗначениеЗаполнено(стрО.Характеристика) Тогда
                //Документы.ПроизводствоБезЗаказа.ОбработкаПроверкиЗаполнения(Истина,Объект.МатериалыИРаботы.Характеристика);
                     СТРВ.Характеристика=стрО.Характеристика;

                 Иначе
                     НовыйОбъект = Справочники.ХарактеристикиНоменклатуры.СоздатьЭлемент();
                     //НовыйОбъект.Код = "840";
                    //СТРВ.Характеристика.Наименование = "НеЗаполнено";
                    //СТРВ.Характеристика.НаименованиеПолное = "НеЗаполненно";
                    
                     НовыйОбъект.Наименование = "НеЗаполнено";
                     НовыйОбъект.Записать();
                     стрО.Характеристика = "Не заполнено";
                     //НовыйОбъект.Ссылка = "НеЗаполненно" ;
                     //НовыйОбъект.Записать();

                    
                    
                    
                    
                    
            КонецЕсли;
            СТРВ.Серия=стрО.Серия;
            СТРВ.Назначение=стрО.Назначение;
            //Если стрО.Кол2=стрО.Выбранно тогда
            //    СТРВ.Количество=стрО.ВсегоНаСкладе;
            //    СТРВ.Количество2=стрО.Выбранно;
            //    
            //иначе    
            //    СТРВ.Количество=Окр(стрО.Выбранно*стрО.На1Кол,0,РежимОкругления.Окр15как10);
            //    СТРВ.Количество2=стрО.Выбранно;
            //КонецЕсли;
            //СТРВ.
            СТРВ.Количество2=стрО.Выбранно;
            СТРВ.Количество=стрО.ВыбранноКГ;
            
            
        КонецЕсли;
                
    КонецЦикла;
    СтруктураВозврата=Новый Структура;
    СтруктураВозврата.Вставить("Склад",Склад);
    СтруктураВозврата.Вставить("ТаблицаВозврата",ТаблицаВозврата);
    ПоместитьВоВременноеХранилище(СтруктураВозврата,АдресВоВременномХранилище);
    Модифицированность = Ложь;
    
    //Возврат Истина;
    // Вставить содержимое обработчика.
КонецПроцедуры
20 iznvi
 
31.10.18
12:13
(18)
21 iznvi
 
31.10.18
12:14
(18) Проблема в том,что при Подборе ВКП мы выбираем Номенклатуру и к ней должна быть подвязана ХарактеристикаНоменклатуры,но она не везде есть,и передается пустое значение, задача в том,что нужно проверить на заполнение эту ссылку и если она заполнена,то все норм,а если нет,то заполнить ее допустим просто "НеЗаполнено" вот
22 Случайный прохожий
 
31.10.18
12:18
Процедура ЗавершитьВводНаСервере()
    
    //ОстаткиНаСкладе

    ТаблицаВозврата=новый ТаблицаЗначений;
    //ТаблицаВозврата.ОстаткиНаСкладе;

    ТаблицаВозврата.Колонки.Добавить("Номенклатура");
    ТаблицаВозврата.Колонки.Добавить("Характеристика");
    ТаблицаВозврата.Колонки.Добавить("Серия");
    ТаблицаВозврата.Колонки.Добавить("Назначение");
    ТаблицаВозврата.Колонки.Добавить("Количество");
    ТаблицаВозврата.Колонки.Добавить("Количество2");
    стр11=-1;
    //ТаблицаВозврата.Очистить();

    //ОстаткиНаСкладе.

    
    для Каждого стрО из ОстаткиНаСкладе цикл
        стр11=стр11+1;
        Если стрО.ДоступноДляРезервирования<стрО.Выбранно тогда
            Модифицированность = Истина;
            
            соо=Новый СообщениеПользователю;
            // соо.ПутьКДанным=стрО.Выбранно;

            
            соо.Текст="Выбрано не допустимое количество";
            соо.Поле="ОстаткиНаСкладе1["+стр11+"].Выбранно";
            соо.УстановитьДанные(стрО.Выбранно);
            соо.Сообщить();
            Возврат;
        КонецЕсли;    
        //Если стрО.Выбранно> 0 тогда

        Если  стрО.ВыбранноКГ > 0 Тогда
            
            СТРВ=ТаблицаВозврата.Добавить();
            СТРВ.Номенклатура=стрО.Номенклатура;
            Если ЗначениеЗаполнено(стрО.Характеристика) Тогда
                //Документы.ПроизводствоБезЗаказа.ОбработкаПроверкиЗаполнения(Истина,Объект.МатериалыИРаботы.Характеристика);

                     СТРВ.Характеристика=стрО.Характеристика;

                 Иначе
                     НовыйОбъект = Справочники.ХарактеристикиНоменклатуры.СоздатьЭлемент();
                    //НовыйОбъект.Код = "840";

                    //СТРВ.Характеристика.Наименование = "НеЗаполнено";

                    //СТРВ.Характеристика.НаименованиеПолное = "НеЗаполненно";

                    
                     НовыйОбъект.Наименование = "НеЗаполнено";
                     НовыйОбъект.Записать();
                     стрО.Характеристика = НовыйОбъект.Ссылка;
                    //НовыйОбъект.Ссылка = "НеЗаполненно" ;

                    //НовыйОбъект.Записать();


                    
                    
                    
                    
                    
            КонецЕсли;
            СТРВ.Серия=стрО.Серия;
            СТРВ.Назначение=стрО.Назначение;
            //Если стрО.Кол2=стрО.Выбранно тогда

            //    СТРВ.Количество=стрО.ВсегоНаСкладе;

            //    СТРВ.Количество2=стрО.Выбранно;

            //    

            //иначе    

            //    СТРВ.Количество=Окр(стрО.Выбранно*стрО.На1Кол,0,РежимОкругления.Окр15как10);

            //    СТРВ.Количество2=стрО.Выбранно;

            //КонецЕсли;

            //СТРВ.

            СТРВ.Количество2=стрО.Выбранно;
            СТРВ.Количество=стрО.ВыбранноКГ;
            
            
        КонецЕсли;
                
    КонецЦикла;
    СтруктураВозврата=Новый Структура;
    СтруктураВозврата.Вставить("Склад",Склад);
    СтруктураВозврата.Вставить("ТаблицаВозврата",ТаблицаВозврата);
    ПоместитьВоВременноеХранилище(СтруктураВозврата,АдресВоВременномХранилище);
    Модифицированность = Ложь;
    
    //Возврат Истина;

    // Вставить содержимое обработчика.

КонецПроцедуры
23 Случайный прохожий
 
31.10.18
12:19
Проверь. Но я бы немного не так написал. Первым делом нужно искать характеристику с наименованием "НеЗаполнено" и если не найдешь - создавать. А то так наплодишь характеристик пустых
24 Случайный прохожий
 
31.10.18
12:20
(22) Комментарий к  "НовыйОбъект.Записать();" сними :)
25 iznvi
 
31.10.18
12:23
(24) {ВКП_ЛТ Обработка.ВКП_Обработка_Подбор.Форма.Форма.Форма(111)}: Ошибка при вызове метода контекста (Записать)
                     НовыйОбъект.Записать();
по причине:
Ошибка при выполнении обработчика - 'ПередЗаписью'
по причине:
{ОбщийМодуль.ОбщегоНазначения.Модуль(95)}: Неверный первый параметр Ссылка:
- Значение должно быть ссылкой или именем предопределенного элемента
            ВызватьИсключение НСтр("ru = 'Неверный первый параметр Ссылка:
26 iznvi
 
31.10.18
12:24
(24) Вот такую штуку выдает
27 Случайный прохожий
 
31.10.18
12:24
Процедура ЗавершитьВводНаСервере()
    
    //ОстаткиНаСкладе


    ТаблицаВозврата=новый ТаблицаЗначений;
    //ТаблицаВозврата.ОстаткиНаСкладе;


    ТаблицаВозврата.Колонки.Добавить("Номенклатура");
    ТаблицаВозврата.Колонки.Добавить("Характеристика");
    ТаблицаВозврата.Колонки.Добавить("Серия");
    ТаблицаВозврата.Колонки.Добавить("Назначение");
    ТаблицаВозврата.Колонки.Добавить("Количество");
    ТаблицаВозврата.Колонки.Добавить("Количество2");
    стр11=-1;
    //ТаблицаВозврата.Очистить();


    //ОстаткиНаСкладе.


    
    для Каждого стрО из ОстаткиНаСкладе цикл
        стр11=стр11+1;
        Если стрО.ДоступноДляРезервирования<стрО.Выбранно тогда
            Модифицированность = Истина;
            
            соо=Новый СообщениеПользователю;
            // соо.ПутьКДанным=стрО.Выбранно;


            
            соо.Текст="Выбрано не допустимое количество";
            соо.Поле="ОстаткиНаСкладе1["+стр11+"].Выбранно";
            соо.УстановитьДанные(стрО.Выбранно);
            соо.Сообщить();
            Возврат;
        КонецЕсли;    
        //Если стрО.Выбранно> 0 тогда


        Если  стрО.ВыбранноКГ > 0 Тогда
            
            СТРВ=ТаблицаВозврата.Добавить();
            СТРВ.Номенклатура=стрО.Номенклатура;
            Если ЗначениеЗаполнено(стрО.Характеристика) Тогда
                //Документы.ПроизводствоБезЗаказа.ОбработкаПроверкиЗаполнения(Истина,Объект.МатериалыИРаботы.Характеристика);


                     СТРВ.Характеристика=стрО.Характеристика;

                 Иначе
                     НовыйОбъект = Справочники.ХарактеристикиНоменклатуры.НайтиПоНаименованию("НеЗаполнено");
                    
                     Если НовыйОбъект = Справочники.ХарактеристикиНоменклатуры.ПустаяСсылка() Тогда

                          НовыйОбъект = Справочники.ХарактеристикиНоменклатуры.СоздатьЭлемент();
                             НовыйОбъект.Наименование = "НеЗаполнено";
                             НовыйОбъект.Записать();
                        
                    КонецЕсли;    
                        
                        
                         стрО.Характеристика = НовыйОбъект.Ссылка;


                    
            КонецЕсли;
            СТРВ.Серия=стрО.Серия;
            СТРВ.Назначение=стрО.Назначение;
            //Если стрО.Кол2=стрО.Выбранно тогда


            //    СТРВ.Количество=стрО.ВсегоНаСкладе;


            //    СТРВ.Количество2=стрО.Выбранно;


            //    


            //иначе    


            //    СТРВ.Количество=Окр(стрО.Выбранно*стрО.На1Кол,0,РежимОкругления.Окр15как10);


            //    СТРВ.Количество2=стрО.Выбранно;


            //КонецЕсли;


            //СТРВ.


            СТРВ.Количество2=стрО.Выбранно;
            СТРВ.Количество=стрО.ВыбранноКГ;
            
            
        КонецЕсли;
                
    КонецЦикла;
    СтруктураВозврата=Новый Структура;
    СтруктураВозврата.Вставить("Склад",Склад);
    СтруктураВозврата.Вставить("ТаблицаВозврата",ТаблицаВозврата);
    ПоместитьВоВременноеХранилище(СтруктураВозврата,АдресВоВременномХранилище);
    Модифицированность = Ложь;
    
    //Возврат Истина;


    // Вставить содержимое обработчика.


КонецПроцедуры
28 Случайный прохожий
 
31.10.18
12:26
(26) А, ну характеристика поди еще к номенклатуре подвязана?)
29 iznvi
 
31.10.18
12:26
(28) Сейчас посмотрю, но полюбому да)
30 Случайный прохожий
 
31.10.18
12:27
Процедура ЗавершитьВводНаСервере()
    
    //ОстаткиНаСкладе


    ТаблицаВозврата=новый ТаблицаЗначений;
    //ТаблицаВозврата.ОстаткиНаСкладе;


    ТаблицаВозврата.Колонки.Добавить("Номенклатура");
    ТаблицаВозврата.Колонки.Добавить("Характеристика");
    ТаблицаВозврата.Колонки.Добавить("Серия");
    ТаблицаВозврата.Колонки.Добавить("Назначение");
    ТаблицаВозврата.Колонки.Добавить("Количество");
    ТаблицаВозврата.Колонки.Добавить("Количество2");
    стр11=-1;
    //ТаблицаВозврата.Очистить();


    //ОстаткиНаСкладе.


    
    для Каждого стрО из ОстаткиНаСкладе цикл
        стр11=стр11+1;
        Если стрО.ДоступноДляРезервирования<стрО.Выбранно тогда
            Модифицированность = Истина;
            
            соо=Новый СообщениеПользователю;
            // соо.ПутьКДанным=стрО.Выбранно;


            
            соо.Текст="Выбрано не допустимое количество";
            соо.Поле="ОстаткиНаСкладе1["+стр11+"].Выбранно";
            соо.УстановитьДанные(стрО.Выбранно);
            соо.Сообщить();
            Возврат;
        КонецЕсли;    
        //Если стрО.Выбранно> 0 тогда


        Если  стрО.ВыбранноКГ > 0 Тогда
            
            СТРВ=ТаблицаВозврата.Добавить();
            СТРВ.Номенклатура=стрО.Номенклатура;
            Если ЗначениеЗаполнено(стрО.Характеристика) Тогда
                //Документы.ПроизводствоБезЗаказа.ОбработкаПроверкиЗаполнения(Истина,Объект.МатериалыИРаботы.Характеристика);


                     СТРВ.Характеристика=стрО.Характеристика;

                 Иначе
                     НовыйОбъект = Справочники.ХарактеристикиНоменклатуры.НайтиПоНаименованию("НеЗаполнено");
                    
                     Если НовыйОбъект = Справочники.ХарактеристикиНоменклатуры.ПустаяСсылка() Тогда

                          НовыйОбъект = Справочники.ХарактеристикиНоменклатуры.СоздатьЭлемент();
                         НовыйОбъект.Владелец = стрО.Номенклатура;
                             НовыйОбъект.Наименование = "НеЗаполнено";
                             НовыйОбъект.Записать();
                        
                    КонецЕсли;    
                        
                        
                         стрО.Характеристика = НовыйОбъект.Ссылка;


                    
            КонецЕсли;
            СТРВ.Серия=стрО.Серия;
            СТРВ.Назначение=стрО.Назначение;
            //Если стрО.Кол2=стрО.Выбранно тогда


            //    СТРВ.Количество=стрО.ВсегоНаСкладе;


            //    СТРВ.Количество2=стрО.Выбранно;


            //    


            //иначе    


            //    СТРВ.Количество=Окр(стрО.Выбранно*стрО.На1Кол,0,РежимОкругления.Окр15как10);


            //    СТРВ.Количество2=стрО.Выбранно;


            //КонецЕсли;


            //СТРВ.


            СТРВ.Количество2=стрО.Выбранно;
            СТРВ.Количество=стрО.ВыбранноКГ;
            
            
        КонецЕсли;
                
    КонецЦикла;
    СтруктураВозврата=Новый Структура;
    СтруктураВозврата.Вставить("Склад",Склад);
    СтруктураВозврата.Вставить("ТаблицаВозврата",ТаблицаВозврата);
    ПоместитьВоВременноеХранилище(СтруктураВозврата,АдресВоВременномХранилище);
    Модифицированность = Ложь;
    
    //Возврат Истина;


    // Вставить содержимое обработчика.


КонецПроцедуры
31 Случайный прохожий
 
31.10.18
12:30
Там еще искать с отбором по владельцу сразу надо))

Процедура ЗавершитьВводНаСервере()
    
    //ОстаткиНаСкладе


    ТаблицаВозврата=новый ТаблицаЗначений;
    //ТаблицаВозврата.ОстаткиНаСкладе;


    ТаблицаВозврата.Колонки.Добавить("Номенклатура");
    ТаблицаВозврата.Колонки.Добавить("Характеристика");
    ТаблицаВозврата.Колонки.Добавить("Серия");
    ТаблицаВозврата.Колонки.Добавить("Назначение");
    ТаблицаВозврата.Колонки.Добавить("Количество");
    ТаблицаВозврата.Колонки.Добавить("Количество2");
    стр11=-1;
    //ТаблицаВозврата.Очистить();


    //ОстаткиНаСкладе.


    
    для Каждого стрО из ОстаткиНаСкладе цикл
        стр11=стр11+1;
        Если стрО.ДоступноДляРезервирования<стрО.Выбранно тогда
            Модифицированность = Истина;
            
            соо=Новый СообщениеПользователю;
            // соо.ПутьКДанным=стрО.Выбранно;


            
            соо.Текст="Выбрано не допустимое количество";
            соо.Поле="ОстаткиНаСкладе1["+стр11+"].Выбранно";
            соо.УстановитьДанные(стрО.Выбранно);
            соо.Сообщить();
            Возврат;
        КонецЕсли;    
        //Если стрО.Выбранно> 0 тогда


        Если  стрО.ВыбранноКГ > 0 Тогда
            
            СТРВ=ТаблицаВозврата.Добавить();
            СТРВ.Номенклатура=стрО.Номенклатура;
            Если ЗначениеЗаполнено(стрО.Характеристика) Тогда
                //Документы.ПроизводствоБезЗаказа.ОбработкаПроверкиЗаполнения(Истина,Объект.МатериалыИРаботы.Характеристика);


                     СТРВ.Характеристика=стрО.Характеристика;

                 Иначе
                     НовыйОбъект = Справочники.ХарактеристикиНоменклатуры.НайтиПоНаименованию("НеЗаполнено",,стрО.Номенклатура);
                    
                     Если НовыйОбъект = Справочники.ХарактеристикиНоменклатуры.ПустаяСсылка() Тогда

                          НовыйОбъект = Справочники.ХарактеристикиНоменклатуры.СоздатьЭлемент();
                         НовыйОбъект.Владелец = стрО.Номенклатура;
                             НовыйОбъект.Наименование = "НеЗаполнено";
                             НовыйОбъект.Записать();
                        
                    КонецЕсли;    
                        
                        
                         стрО.Характеристика = НовыйОбъект.Ссылка;


                    
            КонецЕсли;
            СТРВ.Серия=стрО.Серия;
            СТРВ.Назначение=стрО.Назначение;
            //Если стрО.Кол2=стрО.Выбранно тогда


            //    СТРВ.Количество=стрО.ВсегоНаСкладе;


            //    СТРВ.Количество2=стрО.Выбранно;


            //    


            //иначе    


            //    СТРВ.Количество=Окр(стрО.Выбранно*стрО.На1Кол,0,РежимОкругления.Окр15как10);


            //    СТРВ.Количество2=стрО.Выбранно;


            //КонецЕсли;


            //СТРВ.


            СТРВ.Количество2=стрО.Выбранно;
            СТРВ.Количество=стрО.ВыбранноКГ;
            
            
        КонецЕсли;
                
    КонецЦикла;
    СтруктураВозврата=Новый Структура;
    СтруктураВозврата.Вставить("Склад",Склад);
    СтруктураВозврата.Вставить("ТаблицаВозврата",ТаблицаВозврата);
    ПоместитьВоВременноеХранилище(СтруктураВозврата,АдресВоВременномХранилище);
    Модифицированность = Ложь;
    
    //Возврат Истина;


    // Вставить содержимое обработчика.


КонецПроцедуры
32 iznvi
 
31.10.18
12:33
(31) Здесь есть смайлик который нервно курит в углу ?
Сейчас попробую )
33 Случайный прохожий
 
31.10.18
12:35
(32) А ты что на мисте смайлики видел? оО Это серьезный форум, тут не до этого
34 iznvi
 
31.10.18
12:35
(31) Все равно не заполнилась
https://yadi.sk/i/SyqHQ3kQVtEzpA
35 iznvi
 
31.10.18
12:38
(33) Слушай,а мы разве должны наименнование заполнять ?
Мы не можем заполнить ссылку ?
А наименнование в этом случае должно уноследоваться  ?
Так не работает ?
36 iznvi
 
31.10.18
12:39
(33) Сейчас пробил по отдачику вот в это условие он не заходит
37 iznvi
 
31.10.18
12:39
(33)   Если НовыйОбъект = Справочники.ХарактеристикиНоменклатуры.ПустаяСсылка() Тогда

                             НовыйОбъект = Справочники.ХарактеристикиНоменклатуры.СоздатьЭлемент();
                             НовыйОбъект.Владелец = стрО.Номенклатура;
                             НовыйОбъект.Наименование = "НеЗаполнено";
                             НовыйОбъект.Записать();
                        
                    КонецЕсли;
38 Случайный прохожий
 
31.10.18
12:40
Процедура ЗавершитьВводНаСервере()
    
    //ОстаткиНаСкладе


    ТаблицаВозврата=новый ТаблицаЗначений;
    //ТаблицаВозврата.ОстаткиНаСкладе;


    ТаблицаВозврата.Колонки.Добавить("Номенклатура");
    ТаблицаВозврата.Колонки.Добавить("Характеристика");
    ТаблицаВозврата.Колонки.Добавить("Серия");
    ТаблицаВозврата.Колонки.Добавить("Назначение");
    ТаблицаВозврата.Колонки.Добавить("Количество");
    ТаблицаВозврата.Колонки.Добавить("Количество2");
    стр11=-1;
    //ТаблицаВозврата.Очистить();


    //ОстаткиНаСкладе.


    
    для Каждого стрО из ОстаткиНаСкладе цикл
        стр11=стр11+1;
        Если стрО.ДоступноДляРезервирования<стрО.Выбранно тогда
            Модифицированность = Истина;
            
            соо=Новый СообщениеПользователю;
            // соо.ПутьКДанным=стрО.Выбранно;


            
            соо.Текст="Выбрано не допустимое количество";
            соо.Поле="ОстаткиНаСкладе1["+стр11+"].Выбранно";
            соо.УстановитьДанные(стрО.Выбранно);
            соо.Сообщить();
            Возврат;
        КонецЕсли;    
        //Если стрО.Выбранно> 0 тогда


        Если  стрО.ВыбранноКГ > 0 Тогда
            
            СТРВ=ТаблицаВозврата.Добавить();
            СТРВ.Номенклатура=стрО.Номенклатура;
            Если ЗначениеЗаполнено(стрО.Характеристика) Тогда
                //Документы.ПроизводствоБезЗаказа.ОбработкаПроверкиЗаполнения(Истина,Объект.МатериалыИРаботы.Характеристика);


                     СТРВ.Характеристика=стрО.Характеристика;

                 Иначе
                     НовыйОбъект = Справочники.ХарактеристикиНоменклатуры.НайтиПоНаименованию("НеЗаполнено",,стрО.Номенклатура);
                    
                     Если ЗначениеЗаполнено(НовыйОбъект) Тогда

                          НовыйОбъект = Справочники.ХарактеристикиНоменклатуры.СоздатьЭлемент();
                         НовыйОбъект.Владелец = стрО.Номенклатура;
                             НовыйОбъект.Наименование = "НеЗаполнено";
                             НовыйОбъект.Записать();
                        
                    КонецЕсли;    
                        
                        
                         СТРВ.Характеристика = НовыйОбъект.Ссылка;


                    
            КонецЕсли;
            СТРВ.Серия=стрО.Серия;
            СТРВ.Назначение=стрО.Назначение;
            //Если стрО.Кол2=стрО.Выбранно тогда


            //    СТРВ.Количество=стрО.ВсегоНаСкладе;


            //    СТРВ.Количество2=стрО.Выбранно;


            //    


            //иначе    


            //    СТРВ.Количество=Окр(стрО.Выбранно*стрО.На1Кол,0,РежимОкругления.Окр15как10);


            //    СТРВ.Количество2=стрО.Выбранно;


            //КонецЕсли;


            //СТРВ.


            СТРВ.Количество2=стрО.Выбранно;
            СТРВ.Количество=стрО.ВыбранноКГ;
            
            
        КонецЕсли;
                
    КонецЦикла;
    СтруктураВозврата=Новый Структура;
    СтруктураВозврата.Вставить("Склад",Склад);
    СтруктураВозврата.Вставить("ТаблицаВозврата",ТаблицаВозврата);
    ПоместитьВоВременноеХранилище(СтруктураВозврата,АдресВоВременномХранилище);
    Модифицированность = Ложь;
    
    //Возврат Истина;


    // Вставить содержимое обработчика.


КонецПроцедуры
39 Случайный прохожий
 
31.10.18
12:40
Еще у тебя там ошибочку нашел. Пробуй
40 Случайный прохожий
 
31.10.18
12:42
(35) У наименования строковый тип, а у характеристики тип СправочникССылка. Нельзя элементу с типом СправочникССылка присваивать значение другого типа (в нашем случае - строка)
41 Случайный прохожий
 
31.10.18
12:43
(37) Если не заходит, значит есть такой элемент
42 iznvi
 
31.10.18
12:44
(38) {ВКП_ЛТ Обработка.ВКП_Обработка_Подбор.Форма.Форма.Форма(105)}: Ошибка при вызове метода контекста (Записать)
                             НовыйОбъект.Записать();
по причине:
Ошибка при выполнении обработчика - 'ПередЗаписью'
по причине:
{Справочник.ХарактеристикиНоменклатуры.МодульОбъекта(66)}: Значение поля "Рабочее наименование" не уникально
            ВызватьИсключение ТекстИсключения;
43 iznvi
 
31.10.18
12:44
(38) Теперь вот так
44 iznvi
 
31.10.18
12:44
(40) Я понял
45 Случайный прохожий
 
31.10.18
12:54
(42) Интересно сделали. Этой конфигурации нет под рукой, но попробуй вот так сделать:

Процедура ЗавершитьВводНаСервере()
    
    //ОстаткиНаСкладе


    ТаблицаВозврата=новый ТаблицаЗначений;
    //ТаблицаВозврата.ОстаткиНаСкладе;


    ТаблицаВозврата.Колонки.Добавить("Номенклатура");
    ТаблицаВозврата.Колонки.Добавить("Характеристика");
    ТаблицаВозврата.Колонки.Добавить("Серия");
    ТаблицаВозврата.Колонки.Добавить("Назначение");
    ТаблицаВозврата.Колонки.Добавить("Количество");
    ТаблицаВозврата.Колонки.Добавить("Количество2");
    стр11=-1;
    //ТаблицаВозврата.Очистить();


    //ОстаткиНаСкладе.


    
    для Каждого стрО из ОстаткиНаСкладе цикл
        стр11=стр11+1;
        Если стрО.ДоступноДляРезервирования<стрО.Выбранно тогда
            Модифицированность = Истина;
            
            соо=Новый СообщениеПользователю;
            // соо.ПутьКДанным=стрО.Выбранно;


            
            соо.Текст="Выбрано не допустимое количество";
            соо.Поле="ОстаткиНаСкладе1["+стр11+"].Выбранно";
            соо.УстановитьДанные(стрО.Выбранно);
            соо.Сообщить();
            Возврат;
        КонецЕсли;    
        //Если стрО.Выбранно> 0 тогда


        Если  стрО.ВыбранноКГ > 0 Тогда
            
            СТРВ=ТаблицаВозврата.Добавить();
            СТРВ.Номенклатура=стрО.Номенклатура;
            Если ЗначениеЗаполнено(стрО.Характеристика) Тогда
                //Документы.ПроизводствоБезЗаказа.ОбработкаПроверкиЗаполнения(Истина,Объект.МатериалыИРаботы.Характеристика);


                     СТРВ.Характеристика=стрО.Характеристика;

                 Иначе
                     НовыйОбъект = Справочники.ХарактеристикиНоменклатуры.НайтиПоНаименованию("НеЗаполнено",,стрО.Номенклатура);
                    
                     Если ЗначениеЗаполнено(НовыйОбъект) Тогда

                          НовыйОбъект = Справочники.ХарактеристикиНоменклатуры.СоздатьЭлемент();
                         НовыйОбъект.Владелец = стрО.Номенклатура;
                             НовыйОбъект.Наименование = "НеЗаполнено";
                         НовыйОбъект.РабочееНаименование = "НеЗаполнено";
                             НовыйОбъект.Записать();
                        
                    КонецЕсли;    
                        
                        
                         СТРВ.Характеристика = НовыйОбъект.Ссылка;


                    
            КонецЕсли;
            СТРВ.Серия=стрО.Серия;
            СТРВ.Назначение=стрО.Назначение;
            //Если стрО.Кол2=стрО.Выбранно тогда


            //    СТРВ.Количество=стрО.ВсегоНаСкладе;


            //    СТРВ.Количество2=стрО.Выбранно;


            //    


            //иначе    


            //    СТРВ.Количество=Окр(стрО.Выбранно*стрО.На1Кол,0,РежимОкругления.Окр15как10);


            //    СТРВ.Количество2=стрО.Выбранно;


            //КонецЕсли;


            //СТРВ.


            СТРВ.Количество2=стрО.Выбранно;
            СТРВ.Количество=стрО.ВыбранноКГ;
            
            
        КонецЕсли;
                
    КонецЦикла;
    СтруктураВозврата=Новый Структура;
    СтруктураВозврата.Вставить("Склад",Склад);
    СтруктураВозврата.Вставить("ТаблицаВозврата",ТаблицаВозврата);
    ПоместитьВоВременноеХранилище(СтруктураВозврата,АдресВоВременномХранилище);
    Модифицированность = Ложь;
    
    //Возврат Истина;


    // Вставить содержимое обработчика.


КонецПроцедуры
46 Случайный прохожий
 
31.10.18
12:55
Там же в реквизитах справочника ХарактеристикиНоменклатуры есть реквизит РабочееНаименование?
47 Eiffil123
 
31.10.18
13:02
почему в конфигуратор вход не по паролям после сдачи спеца по 1С?
48 iznvi
 
31.10.18
13:06
(46) {ВКП_ЛТ Обработка.ВКП_Обработка_Подбор.Форма.Форма.Форма(108)}: Поле объекта не обнаружено (РабочееНаименование)
                         НовыйОбъект.РабочееНаименование = "НеЗаполнено";

Сейчас проверяю по поводу реквизита РабочееНаименнование
49 iznvi
 
31.10.18
13:07
(46) нет,нету
50 iznvi
 
31.10.18
13:08
(47) Такой информацией не обладаю
51 iznvi
 
31.10.18
13:20
(46) Нашел в Виды Номенклатуры реквизит
ШаблонРабочегоНаименованияХарактеристики
но это скорее всего не то
52 Случайный прохожий
 
31.10.18
13:36
Ну глянь {Справочник.ХарактеристикиНоменклатуры.МодульОбъекта(66)} что там написано? Тебе же место ошибки указывает
53 iznvi
 
31.10.18
13:43
(52) Там получается формируется РабочееНаименнование и Проверяется
Сейчас скину код
54 iznvi
 
31.10.18
13:43
Если ОбменДанными.Загрузка Тогда
        Возврат;
    КонецЕсли;

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

        Если ПометкаУдаления <> ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Ссылка, "ПометкаУдаления") Тогда
            Справочники.КлючиАналитикиУчетаНоменклатуры.УстановитьПометкуУдаления(Новый Структура("Характеристика", Ссылка), ПометкаУдаления);
        КонецЕсли;

    КонецЕсли;
        
    Если ЗначениеЗаполнено(Принципал)
        И ТипЗнч(Принципал) = Тип("СправочникСсылка.Организации") Тогда
        Контрагент = Принципал;
    КонецЕсли;
55 iznvi
 
31.10.18
13:43
(52)
56 iznvi
 
31.10.18
13:48
(52) И получается вот этот отрывок кода нужен
57 iznvi
 
31.10.18
13:48
(52) Если КонтролироватьРабочееНаименование
        И Не Отказ Тогда
        Если Не Справочники.ХарактеристикиНоменклатуры.РабочееНаименованиеУникально(ЭтотОбъект) Тогда
            ТекстИсключения = НСтр("ru='Значение поля ""Рабочее наименование"" не уникально'");
            ВызватьИсключение ТекстИсключения;
            Отказ = Истина;
        КонецЕсли;
    КонецЕсли;
58 iznvi
 
31.10.18
13:50
(54) И в ЭтотОбъект передается значение "Не заполнено"
59 Случайный прохожий
 
31.10.18
13:51
А вам вообще нужно отслеживать уникальность наименований номенклатуры и характеристик?
60 iznvi
 
31.10.18
13:53
(59) Думаешь просто закомментировать это ?:)
61 Случайный прохожий
 
31.10.18
13:53
Просто непойму он функцией Справочники.ХарактеристикиНоменклатуры.РабочееНаименованиеУникально(ЭтотОбъект) ищет везде без отбора по владельцу или с отбором
62 Случайный прохожий
 
31.10.18
13:54
(60) Константы.КонтролироватьУникальностьРабочегоНаименованияНоменклатурыИХарактеристик
Выключить если ненужно. Но это на костыль смахивает)))
63 iznvi
 
31.10.18
13:54
(61) Ну если логически рассуждать,то скорее всего нет,ибо я думаю оставлен был бы комментрарий какой-то или было бы написано,как писал ты.
64 iznvi
 
31.10.18
13:56
(62) А я не могу этот модуль редактировть :o
65 Случайный прохожий
 
31.10.18
13:56
Посмотри у подгружаемых номенклатур уже создались характеристики с наименованием "НеЗаполнено"?
66 iznvi
 
31.10.18
13:56
(65) Секунду
67 Случайный прохожий
 
31.10.18
13:56
(64) Ненадо редактировать. Что такое константы знаешь? просто отключи эту константу в режиме предприятия
68 iznvi
 
31.10.18
13:59
(67) https://yadi.sk/i/QUL-HJktsLF3ZQ
Вот если я то проверил,то нет,характеристика пустая
69 iznvi
 
31.10.18
13:59
(67)  а я понял
70 iznvi
 
31.10.18
16:06
(67) Спасибо тебе большое
Разобрался,все работает )
71 iznvi
 
31.10.18
16:06
(67)