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

Артикул Контрагента

Автор anton.kislov, 23 мая 2013, 10:07

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

anton.kislov

ситуация такова: есть форма "Заказ контрагента", в ней куча полей(Артикул, номенклатура, цена и т.д. и т.п.), мне же необходимо добавить одну колонку "Артикул Контрагента", данные этой колонки находятся в "регистре сведений"-> номенклатура контрагента->АртикулНоменклатурыКонтрагента....
мне нужно чтобы данные которые он хранит вылезле в этой форме в поле "Артикул Контрагента"

Как к нему обратится...

заранее благодарен

Dethmontt

Цитата: anton.kislov от 23 мая 2013, 10:07Как к нему обратится...

К кому? К 1С-у?
Добавлено: 23 мая 2013, 11:14


Можете обращаться на ВЫ :D
Если долго всматриваться в учебник...то в голову может прийти мысль его открыть!

Dethmontt

Процедура НоменклатураПриИзменении(ПолеФормыЭлемент)
   ТекДанные = ЭлементыФормы.ИмяТабличнойЧасти.ТекущиеДанные; //Включаем экстрасенсорные способности (т.к. ТС не сказал что за конфигурация) предположим что это обычные формы!
   ТекДанные.АртикулКонтрагента = ПолучитьИзРегистраАртикулПоКонтрагентуЗапросом(Контрагент); //Но можно получать артикул и при открытии формы и при изменении контрагента (что бы сократить обращения к базе)
//В принципе ВСЕ!
//Функция ПолучитьИзРегистраАртикулПоКонтрагентуЗапросом - запросом выбирает нужный артикул и возвращает его!
// текст этой функции мне писать ЛЕНЬ
КонецПроцедуры
Если долго всматриваться в учебник...то в голову может прийти мысль его открыть!

anton.kislov

Цитата: Dethmontt от 23 мая 2013, 11:13
Цитата: anton.kislov от 23 мая 2013, 10:07Как к нему обратится...

К кому? К 1С-у?
Добавлено: 23 мая 2013, 11:14


Можете обращаться на ВЫ :D

Ну не до такой же степени((
Добавлено: 23 мая 2013, 11:27


Цитата: Dethmontt от 23 мая 2013, 11:18
Процедура НоменклатураПриИзменении(ПолеФормыЭлемент)
   ТекДанные = ЭлементыФормы.ИмяТабличнойЧасти.ТекущиеДанные; //Включаем экстрасенсорные способности (т.к. ТС не сказал что за конфигурация) предположим что это обычные формы!
   ТекДанные.АртикулКонтрагента = ПолучитьИзРегистраАртикулПоКонтрагентуЗапросом(Контрагент); //Но можно получать артикул и при открытии формы и при изменении контрагента (что бы сократить обращения к базе)
//В принципе ВСЕ!
//Функция ПолучитьИзРегистраАртикулПоКонтрагентуЗапросом - запросом выбирает нужный артикул и возвращает его!
// текст этой функции мне писать ЛЕНЬ
КонецПроцедуры


платформа 8,2 УТ 10,3
спасибо
Добавлено: 24 мая 2013, 07:08


сделал так вот..
//запись данных в Колонку "Артикул у контрагента"
Процедура НоменклатураПриИзменении(АртикулКонтрагента)
   ТекДанные = АртикулКонтрагента.Товары.ТекущиеДанные;
   ТекДанные.АртикулКонтрагента = ПолучитьИзРегистраАртикулПоКонтрагенту(Контрагент);
   
//Функция ПолучитьИзРегистраАртикулПоКонтрагентуЗапросом - запросом выбирает нужный артикул и возвращает его!
КонецПроцедуры


//Получаем данные из регистра сведений
Функция  ПолучитьИзРегистраАртикулПоКонтрагенту(Запрос)

   Запрос.Текст = "
   |ВЫБРАТЬ
   |   НоменклатураКонтрагентов.Номенклатура                        КАК Номенклатура,
   |   НоменклатураКонтрагентов.Контрагент                          КАК Контрагент,
   |   НоменклатураКонтрагентов.ХарактеристикаНоменклатуры          КАК ХарактеристикаНоменклатуры,
   |   НоменклатураКонтрагентов.НаименованиеНоменклатурыКонтрагента КАК НаименованиеНоменклатурыКонтрагента,
   |   НоменклатураКонтрагентов.АртикулНоменклатурыКонтрагента      КАК АртикулНоменклатурыКонтрагента
   |ПОМЕСТИТЬ АртикулНоменклатурыКонтрагента
   |ИЗ
   |   РегистрСведений.НоменклатураКонтрагентов КАК НоменклатураКонтрагентов
   |ГДЕ
   |   НоменклатураКонтрагентов.Контрагент = &Контрагент
   |";
   Запрос.Выполнить();

КонецФункции

Но не выводится запись ((

Dethmontt

Потому что:
1. Функция ничего не возвращает.
2. Запрос написан не правильно
Если долго всматриваться в учебник...то в голову может прийти мысль его открыть!

anton.kislov

Цитата: Dethmontt от 24 мая 2013, 10:03
Потому что:
1. Функция ничего не возвращает.
2. Запрос написан не правильно

понял, буду познавать значит..
давненько я не разбирался..

anton.kislov

Цитата: Dethmontt от 24 мая 2013, 10:03
Потому что:
1. Функция ничего не возвращает.
2. Запрос написан не правильно

понял что не то писал..
Написал вот так..
Функция ПолучитьИзРегистраАртикулПоКонтрагентуЗапросом(Контрагент)

    Запрос = Новый Запрос;
    Запрос.Текст = "ВЫБРАТЬ               
        |    НоменклатураКонтрагентов.АртикулНоменклатурыКонтрагента             
        |ИЗ                 
        |    РегистрСведений.НоменклатураКонтрагентов КАК НоменклатураКонтрагентов     
        |ГДЕ               
        |    НоменклатураКонтрагентов.Контрагент = &Контрагент";
    Запрос.УстановитьПараметр("Контрагент", Контрагент);

    Выборка = Запрос.Выполнить().Выбрать();
    Если Выборка.Следующий() Тогда
        Возврат Выборка.АртикулНоменклатурыКонтрагента;
    КонецЕсли;

    Возврат "!!!!"; // не нашли

КонецФункции

Но результат тот же((

Yura063

Цитата: anton.kislov от 27 мая 2013, 10:34Возврат "!!!!"; // не нашли

Это не надо!
Добавлено: 27 мая 2013, 10:48


или поставьте его в условия после иначе!
Добавлено: 27 мая 2013, 10:49



    Если Выборка.Следующий() Тогда
        Возврат Выборка.АртикулНоменклатурыКонтрагента;
    Иначе
        Возврат "!!!!"; // не нашли
    КонецЕсли;

Помогли, отблагодари!

anton.kislov

Цитата: Yura063 от 27 мая 2013, 10:47
Цитата: anton.kislov от 27 мая 2013, 10:34Возврат "!!!!"; // не нашли

Это не надо!
Добавлено: 27 мая 2013, 10:48


или поставьте его в условия после иначе!
Добавлено: 27 мая 2013, 10:49



    Если Выборка.Следующий() Тогда
        Возврат Выборка.АртикулНоменклатурыКонтрагента;
    Иначе
        Возврат "!!!!"; // не нашли
    КонецЕсли;



понял, Но тут другое...
Я получил в столбце "0" везде..
вот это интересно уже...

Yura063

Есть консоль запросов, проверьте ей что получаете в запросе! у вас эти поля заполнены?
Помогли, отблагодари!

Теги:

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

Рейтинг@Mail.ru

Поиск