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

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

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

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

anton.kislov

Цитата: Yura063 от 27 мая 2013, 11:10
у вас эти поля заполнены?
конечно... и там много данных

Yura063

Для толстого клиента!
Добавлено: 27 мая 2013, 11:33


еще как вариант. Соответствие типов полей!
Помогли, отблагодари!

anton.kislov

Цитата: Yura063 от 27 мая 2013, 11:17
Для толстого клиента!
Добавлено: 27 мая 2013, 11:33


еще как вариант. Соответствие типов полей!
он у меня не запускается...
на 8.2

Yura063

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

Dethmontt

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

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

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

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

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

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

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

Функция написана правильно.
Добавлено: 27 мая 2013, 12:47


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

Dethmontt

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

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

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

    Возврат Неопределено; // не нашли

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

И после вызова проверял бы

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

anton.kislov

простите домой ехал...
данные я беру не оттуда, или не туда обращаюсь...
нули показываются, и "!!!!" в служебных, (проверку сделал как выше предложили)
Добавлено: 27 мая 2013, 13:00


Цитата: Dethmontt от 27 мая 2013, 12:50
И после вызова проверял бы

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


а вот так сделал...
пишет "Не удалось найти артикул по контрагенту - " и не пишет контрагента... по-этому и "0"!

Dethmontt

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

Yura063

Какой тип у контрагента вы передаете? Какой тип у контрагента в регистре сведений?
Помогли, отблагодари!

anton.kislov

Цитата: Yura063 от 27 мая 2013, 13:07
Какой тип у контрагента вы передаете? Какой тип у контрагента в регистре сведений?
и там и там "строки" длиной 25..
уже перепроверил и не раз

Теги:

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

Рейтинг@Mail.ru

Поиск