Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
25 ноя 2024, 00:09

Заполнение табличной части документа из справочника

Автор sas_255, 25 июн 2021, 16:04

0 Пользователей и 1 гость просматривают эту тему.

sas_255

Типы совпадают.
БОлее того, если я убираю условие отбора то в цикле табличная часть заполняется из справочника всеми отладочными позициями без проблем.
Вот либо лыжи не едут либо я....
Получается вся проблема в параметре отбора. Он почему то либо не передается либо не срабатывает.

Поменял поле отбора с Код на другое, все равно не работает. В консоли все ОК, в базе не отбирает

LexaK

да, какая-то мелочь не работает, или обработчик события не тот или не там,
если у вас база небольшая, или сможете сделать копию только с этим справочником и этим документом то выкладывайте ДТ-шник, посмотрим
если помогло нажмите: Спасибо!

sas_255

Выложил ДТ на Гугл диск, так как тут ограничение в 10 Мб, а он весит 24 Мб.

БАЗА

Посмотрите пожалуйста, бо у меня уже глаз видимо замылился за два дня попыток найти косяк.

LexaK

да, как и предполагалось дело в типах было,
попробуйте вот этот код целиком в модуль формы документа поместите,
у меня сразу заработало
только учтите у вас в ТЧ все реквизиты Тип:Строка происходит неявное преобразование ссылок в строку.  :xfbnsdfb:

&НаКлиенте
Процедура ДобавитьПоСерийномуНомеруПриИзменении(Элемент)

ДобавитьПоСерийномуНомеруПриИзмененииНаСервере(Объект.ДобавитьПоСерийномуНомеру);

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

&НаСервере
Процедура ДобавитьПоСерийномуНомеруПриИзмененииНаСервере(СерийныйНомер)

Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ
|  Устройства.Код КАК СерийныйНомер,
| Устройства.ТипУстройства КАК ТипУстройства,
| Устройства.Производитель КАК Производитель,
| Устройства.Модель КАК Модель,
| Устройства.СостояниеУстройства КАК СостояниеУстройства,
| Устройства.Поставщик КАК Поставщик,
| Устройства.ШтрихКод КАК ШтрихКод,
| Устройства.Цена КАК Цена
|ИЗ
| Справочник.Устройства КАК Устройства
|ГДЕ
| Устройства.Ссылка = &Ссылка";

Запрос.УстановитьПараметр("Ссылка", СерийныйНомер);
РезультатЗапроса = Запрос.Выполнить();
ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();

Если ВыборкаДетальныеЗаписи.Следующий() Тогда
НоваяСтрока = Объект.Устройства.Добавить();
ЗаполнитьЗначенияСвойств(НоваяСтрока, ВыборкаДетальныеЗаписи);
КонецЕсли;

//Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
// НоваяСтрока = Объект.Устройства.Добавить();
// ЗаполнитьЗначенияСвойств(НоваяСтрока, ВыборкаДетальныеЗаписи);
//КонецЦикла;

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

если помогло нажмите: Спасибо!

antoneus

А зачем тащить в документ все это барахло (СерийныйНомер, ТипУстройства, Производитель, Модель, СостояниеУстройства, Поставщик, ШтрихКод, Цена) и хранить в нем, если достаточно хранить только ссылку на устройство? Кстати, цену не надо хранить в справочнике - для этого есть регистры сведений.

sas_255

Цитата: LexaK от 26 июн 2021, 19:12да, как и предполагалось дело в типах было,
попробуйте вот этот код целиком в модуль формы документа поместите,
у меня сразу заработало
только учтите у вас в ТЧ все реквизиты Тип:Строка происходит неявное преобразование ссылок в строку.  :xfbnsdfb:


Огромное спасибо, у меня тоже все заработало.
По факту я так понял у меня проблема была в этой строке Устройства.Ссылка = &Ссылка (было Устройства.Код = &Код)
Только неясно почему это преобразование происходит.
Как это можно было понять? Я в отладчике не туда смотрел?
Просто хотелось бы разобраться как искать такие "приколы" чтобы в дальнейшем не попадать в такие глупые ситуации.



Цитата: antoneus от 26 июн 2021, 20:00А зачем тащить в документ все это барахло (СерийныйНомер, ТипУстройства, Производитель, Модель, СостояниеУстройства, Поставщик, ШтрихКод, Цена) и хранить в нем, если достаточно хранить только ссылку на устройство? Кстати, цену не надо хранить в справочнике - для этого есть регистры сведений.
В каком смысле только ссылку? То есть уникальный код устройства? Не совсем понимаю как это должно работать, поэтому видимо ссылку и не применил. Ещё учусь. С регистрами да, согласен, но тут логика такая, что это не складская программа, тут нужно указывать цену при заведении товара в справочнике, там же подвязывать файлы и др информацию по устройству. Еще до движений. А в регистр цена попадет только после движения товара через документ.
 

antoneus


Похожие темы (5)

Рейтинг@Mail.ru

Поиск