|
Заполнение СправочникаСсылки | ☑ | ||
---|---|---|---|---|
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)
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |