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

Вопрос на засыпку ))

Автор mixqn, 01 авг 2013, 11:10

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

mixqn

Проще 1 раз увидеть, чем 10 раз прочитать, поэтому во вложении обработка. Предназначена она под УПП 1.3, несколько измененную. В принципе, должна открыться в любой конфе с обычными формами, где есть регистр сведений Штрихкоды.

Итак, попробую максимально коротко описать суть дела.
Обработка предназначена для печати штрих-кодов. Основная форма обработки содержит табличное поле с полями «Объект», «Тип штрихкода» и «Штрихкод». Тип значения поля «Штрихкод» Характеристика.ТипыШтрихкодов (это может быть важно, хотя пробовал делать строкой, проблема та же).

Для выбора конкретного штрихкода из регистра в обработке добавлена своя форма выбора (т.к. стандартно платформой форма выбора для регистра сведений не предусмотрена).

В первом варианте обработки я заполнял только само поле штрихкод следующим образом:
код в форме выбора:
ОповеститьОВыборе(ВыбраннаяСтрока.Штрихкод);
код в обработке выбора поля ввода Штрихкод:
Элемент.Значение = ВыбранноеЗначение;
ЭТО РАБОТАЕТ НОРМАЛЬНО!!!

Учитывая, что при выборе строки регистра, я могу заполнить сразу все 3 значения таблицы («Объект», «Тип штрихкода» и «Штрихкод»), я это и решил попытаться это сделать, для этого изменил код:
в форме выбора:
ОповеститьОВыборе(ВыбраннаяСтрока);
код в обработке выбора поля ввода Штрихкод:
Элемент.Значение = ВыбранноеЗначение.Штрихкод;
ТекущаяСтрока = ЭлементыФормы.ТаблицаШтрихКодов.ТекущаяСтрока;
Если НЕ ЗначениеЗаполнено(ТекущаяСтрока.Объект) Тогда
ТекущаяСтрока.Объект = ВыбранноеЗначение.Владелец;
КонецЕсли;
Если НЕ ЗначениеЗаполнено(ТекущаяСтрока.ТипШтрихкода) Тогда
ТекущаяСтрока.ТипШтрихкода = ВыбранноеЗначение.ТипШтрихкода;
КонецЕсли;

В этом случае заполнение 2-ух других полей работает, но в поле Штрихкод отображается строка «РегистрСведенийКлючЗаписи.Штрихкоды».

ПОЧЕМУ так???

Не могу понять.

Отладчиком проверял, передаваемое значение всегда имеет тип строка – что при передаче через точку сразу из формы выбора, что при получении через точку того же самого в обработке выбора. Значение элемента управления в отладчике заполнено верно. Но отображается все равно ерунда.

Что уже пробовал:
1.       Изменял тип поля Штрихкод с Характеристика.ТипыШтрихкодов на Строка(200). Не помогло.
2.       Выводил текст через оформление строки. Не помогло (отображается все равно «РегистрСведенийКлючЗаписи.Штрихкоды»).
3.       Пытался преобразовывать значение, получаемое через точку в обработке выбора – привести к типу строка (типа СокрЛП(), Строка())

Тому, кто сможет подсказать в чем дело – огромный респект и уважуха )))

Dethmontt

Косяк у тебя в этой строке

ФормуВыбора = ЭтотОбъект.ПолучитьФорму("ФормуВыбора", Элемент, Элемент);

Добавлено: 01 авг 2013, 11:56


Платформа сама заполняет элемент переданный в форму выбора владелцем
Добавлено: 01 авг 2013, 11:58


ФормуВыбора = ЭтотОбъект.ПолучитьФорму("ФормуВыбора", ЭтаФорма, Элемент); //Если сам заполняешь то так
Если долго всматриваться в учебник...то в голову может прийти мысль его открыть!

mixqn

Цитата: Dethmontt от 01 авг 2013, 11:56Платформа сама заполняет элемент переданный в форму выбора владелцем
ах вот она где собака то порылась

Добавлено: 01 авг 2013, 12:05


добавил СтандартнаяОбработка = Ложь; работает!!! :zebzdr:
Dethmontt, спасибо!

Теги:

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

Рейтинг@Mail.ru

Поиск