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

автоматическое заполнение из справочника

Автор RATlius, 20 мая 2014, 23:48

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

cska-fanat-kz

Есть такой объект... называется структура...
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

RATlius

я только недавно начал изучать 1С и со структурами еще не сталкивался.

cska-fanat-kz

Ну так самое время начать сталкиваться :befhbt:

Функция ПолучитьЕдиницуИзмеренияНаСервере(НаименованиеТовара)
РезультатСтруктура = Новый Структура("ЕдиницаИзмерения, Код");
РезультатСтруктура.ЕдиницаИзмерения = НаименованиеТовара.УсловноеОбозначение;
РезультатСтруктура.Код = НаименованиеТовара.УсловноеОбозначение.Код;
Возврат РезультатСтруктура;
КонецФункции

Дальше - сами...
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

RATlius

&НаСервере
Функция ПолучитьЕдиницуИзмеренияНаСервере(НаименованиеТовара)
РезультатСтруктура = Новый Структура("ЕдиницаИзмерения, Код");
РезультатСтруктура.ЕдиницаИзмерения = НаименованиеТовара.УсловноеОбозначение;
РезультатСтруктура.Код = НаименованиеТовара.УсловноеОбозначение.Код;
Возврат РезультатСтруктура;
КонецФункции

&НаКлиенте
Процедура ТоварыНаименованиеТовараПриИзменении (Элемент)
   СтрокаТЧ = Элементы.Товары.ТекущиеДанные;
   СтрокаТЧ.ЕдИзмерен = ПолучитьЕдиницуИзмеренияНаСервере(РезультатСтруктура.ЕдиницаИзмерения);
   СтрокаТЧ.Код = ПолучитьЕдиницуИзмеренияНаСервере(РезультатСтруктура.Код);
КонецПроцедуры


В этом случае он пишет:
{Документ.СчетФактураПродажа.Форма.ПокупкаСчетФактура.Форма(71,59)}: Переменная не определена (РезультатСтруктура)
   СтрокаТЧ.ЕдИзмерен = ПолучитьЕдиницуИзмеренияНаСервере(<<?>>РезультатСтруктура.ЕдиницаИзмерения); (Проверка: Тонкий клиент)
{Документ.СчетФактураПродажа.Форма.ПокупкаСчетФактура.Форма(72,53)}: Переменная не определена (РезультатСтруктура)
   СтрокаТЧ.Код = ПолучитьЕдиницуИзмеренияНаСервере(<<?>>РезультатСтруктура.Код); (Проверка: Тонкий клиент)



&НаКлиенте
Функция ПолучитьЕдиницуИзмеренияНаСервере(НаименованиеТовара)
РезультатСтруктура = Новый Структура("ЕдиницаИзмерения, Код");
РезультатСтруктура.ЕдиницаИзмерения = НаименованиеТовара.УсловноеОбозначение;
РезультатСтруктура.Код = НаименованиеТовара.УсловноеОбозначение.Код;
Возврат РезультатСтруктура;
СтрокаТЧ = Элементы.Товары.ТекущиеДанные;
    СтрокаТЧ.ЕдИзмерен = РезультатСтруктура.ЕдиницаИзмерения;
    СтрокаТЧ.Код = РезультатСтруктура.Код;
КонецФункции


А в этом:
{Документ.СчетФактураПродажа.Форма.ПокупкаСчетФактура.Форма(88)}: Поле объекта не обнаружено (УсловноеОбозначение)
   РезультатСтруктура.ЕдиницаИзмерения = НаименованиеТовара.УсловноеОбозначение;

cska-fanat-kz

Ну вы блин даете! (с)

Правильный ответ:
&НаКлиенте
Процедура ТоварыНаименованиеТовараПриИзменении (Элемент)
   СтрокаТЧ = Элементы.Товары.ТекущиеДанные;
   ДанныеЕдиницыИзмерения = ПолучитьЕдиницуИзмеренияНаСервере(СтрокаТЧ.НаименованиеТовара);
   СтрокаТЧ.ЕдИзмерен = ДанныеЕдиницыИзмерения.ЕдиницаИзмерения;
   СтрокаТЧ.Код = ДанныеЕдиницыИзмерения.Код;
КонецПроцедуры

Уважаемый, хотя бы попытайтесь прочитать, какую нибудь литературу по 1С. да и в целом по программированию и алгоритмизации. ясно видно, что вы не имеете представления, что такое процедуры и функции, как задавать их параметры, как использовать значение функции....... :befhbt:
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

RATlius

cska-fanat-kz, Спасибо вам за вашу компетентность и желание помочь. Вы меня очень выручили.:ooifh:

Добавлено: 25 мая 2014, 16:14


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

Сначала указываем тип реквизита табличной части:
ЕдИзмерен - СправочникСсылка.ЕдиницыИзмерения
СтранаПроизводитель - СправочникСсылка.ПроизводительТовара

и прописать код в модуль ФормыЭлемента:

Функция ПолучитьЕдиницуИзмеренияНаСервере(НаименованиеТовара)
    РезультатСтруктура = Новый Структура("ЕдиницаИзмерения, Код, СтранаПроизводитель, КодСП");
    РезультатСтруктура.ЕдиницаИзмерения = НаименованиеТовара.УсловноеОбозначение;      //Наименование условного обозначения
    РезультатСтруктура.Код = НаименованиеТовара.УсловноеОбозначение.Код1;              //код условного обозначения
    РезультатСтруктура.СтранаПроизводитель = НаименованиеТовара.СтранаПроизводитель;   //Наименование страны производителя
    РезультатСтруктура.КодСП = НаименованиеТовара.СтранаПроизводитель.Код;             //Код страны производителя
    Возврат РезультатСтруктура;
КонецФункции

&НаКлиенте
Процедура ТоварыНаименованиеТовараПриИзменении (Элемент)
   СтрокаТЧ = Элементы.Товары.ТекущиеДанные;
   ДанныеЕдиницыИзмерения = ПолучитьЕдиницуИзмеренияНаСервере(СтрокаТЧ.НаименованиеТовара);
   СтрокаТЧ.ЕдИзмерен = ДанныеЕдиницыИзмерения.ЕдиницаИзмерения;
   СтрокаТЧ.Код = ДанныеЕдиницыИзмерения.Код;
   СтрокаТЧ.КраткоеНаименование = ДанныеЕдиницыИзмерения.СтранаПроизводитель;
   СтрокаТЧ.ЦифровойКод = ДанныеЕдиницыИзмерения.КодСП;
КонецПроцедуры

cska-fanat-kz

Внимание, задача (по желанию ;) )

Как вот это

СтрокаТЧ.ЕдИзмерен = ДанныеЕдиницыИзмерения.ЕдиницаИзмерения;
СтрокаТЧ.Код = ДанныеЕдиницыИзмерения.Код;
СтрокаТЧ.КраткоеНаименование = ДанныеЕдиницыИзмерения.СтранаПроизводитель;
СтрокаТЧ.ЦифровойКод = ДанныеЕдиницыИзмерения.КодСП;

сделать более универсальным и заменить на всего одну строку? ;)
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

RATlius

попробую предположить что так:

СтрокаТЧ.(ЕдИзмерен,Код,КраткоеНаименование,ЦифровойКод) = ДанныеЕдиницыИзмерения.(ЕдиницаИзмерения,Код,СтранаПроизводитель,КодСП);

Верно?

cska-fanat-kz

Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

Теги: 8.2 

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

Рейтинг@Mail.ru

Поиск