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

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

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

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

anton.kislov

Цитата: Dethmontt от 27 мая 2013, 13:15
Читаем литературу... Что такое ссылка и как ей пользоваться...
Это базовые знания, без них у вас ничего не получиться...

во вложении файл
измерения
контрагент - ссылка на справочник контрагента
номенклатура - ссылка на спр. номенклатура и т.д.

мне же нужен "ресурс" - "АртикулНоменклатурыКонтрагента"

Dethmontt

Сделай как на форуме...
Добавлено: 27 мая 2013, 13:23


Или

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

Запрос.УстановитьПараметр("Контрагент", МойДолбанныйКонтрагентДляОтбора);
Если долго всматриваться в учебник...то в голову может прийти мысль его открыть!

anton.kislov

Цитата: Dethmontt от 27 мая 2013, 13:22
Сделай как на форуме...


уже давно как на форуме вы писали...
скрин старый просто

Dethmontt

Цитата: anton.kislov от 27 мая 2013, 13:20мне же нужен "ресурс" - "АртикулНоменклатурыКонтрагента"
Запрос выбирает из регистра ресурс АртикулНоменклатурыКонтрагента, но запрос хочет знать по какому контрагенту нужен этот ресурс!!!

Для этого ты и передаешь в функцию на вход контрагента с формы своего документа для запроса... (Тип у него должен быть ССЫЛКА)

Как понятнее объяснить я не знаю...
Если долго всматриваться в учебник...то в голову может прийти мысль его открыть!

Yura063

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

anton.kislov


Yura063

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

anton.kislov

Написал функцию, процедуру
Процедура инициализацияПеременныхДляРаботы()

Артикул = ПолучитьИзРегистраАртикулПоКонтрагентуЗапросом(Номенклатура , Контрагент);
Если Артикул = Неопределено тогда
   Сообщить("Не удалось найти артикул по контрагенту - "+Контрагент.Наименование);
   Артикул = "";
КонецЕсли;

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

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

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

Запрос.УстановитьПараметр("Контрагент", Контрагент);
Запрос.УстановитьПараметр("Номенклатура", Номенклатура);

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

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



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

Ругается на Номенклатуру (что не объявлена) в процедуре((
Если убрать Номенклутуры то находит Артикул для всех строк только 1!!

Yura063

Цитата: anton.kislov от 02 окт 2013, 11:31Артикул = ПолучитьИзРегистраАртикулПоКонтрагентуЗапросом(Номенклатура , Контрагент);
Эта процедура не знает номенклатуру Процедура инициализацияПеременныхДляРаботы()
Откуда вы берете реквизит номенклатура, какой у него тип?

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

anton.kislov

Цитата: Yura063 от 02 окт 2013, 15:27
Откуда вы берете реквизит номенклатура, какой у него тип?
Из табличной части, документа ЗаказПоставщику
Тип данных - СправочникСсылка.Номенклатура

Теги:

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

Рейтинг@Mail.ru

Поиск