Имя: Пароль:
1C
1С v8
v8: контрагент не находится
,
0 karpos
 
14.01.14
14:49
Помогите. Написал функцию надо чтобы работала на управляемых формах.

Функция КонтактнаяИнформация(Контрагент) Экспорт
    //перем Тип;
    //Тип = перечисления.ТипыКонтактнойИнформации.Телефон;
    Запрос = Новый Запрос;
    Запрос.Параметры.Вставить("Контрагент", Контрагент);
    //Запрос.Параметры.Вставить("Тип", Тип);
    Запрос.Текст =
    "ВЫБРАТЬ
    |    КонтрагентыКонтактнаяИнформация.Тип,
    |    КонтрагентыКонтактнаяИнформация.Вид,
    |    КонтрагентыКонтактнаяИнформация.Представление
    |ИЗ
    |    Справочник.Контрагенты.КонтактнаяИнформация КАК КонтрагентыКонтактнаяИнформация
    |ГДЕ
    |    КонтрагентыКонтактнаяИнформация.Ссылка В (&Контрагент)";
    
    Выборка = Запрос.Выполнить().Выбрать();
    Пока Выборка.Следующий() Цикл
        Возврат Выборка.Представление;
    КонецЦикла;    
КонецФункции


вызываю
Контрагент = Справочники.Контрагенты.НайтиПоКоду("ФР-000002");
В = КонтактнаяИнформация(Контрагент);
Сообщить(В);

В сообщить ничего пусто хотя знаю точно данные должны быть.
1 1dvd
 
14.01.14
14:50
передфункцией напиши

&НаСервере
2 SherifSP
 
14.01.14
14:52
(1) Контрагент у тебя 1, значит условие запроса не В, а =
|ГДЕ
    |    КонтрагентыКонтактнаяИнформация.Ссылка = &Контрагент";
3 1dvd
 
14.01.14
14:53
(2) у меня контрагентов вообще нет
4 SherifSP
 
14.01.14
14:53
+(2) -> (1)
&НаСервере
Функция КонтактнаяИнформация(Контрагент) Экспорт
5 SherifSP
 
14.01.14
14:54
(3) Ошибся, там (0) )
6 Бледно Золотистый
 
14.01.14
14:56
Пока Выборка.Следующий() Цикл
        Возврат Выборка.Представление;
    КонецЦикла;    
Это еще что?
7 vicof
 
14.01.14
14:57
(0) А зачем в цикле получать поля выборки?
8 karpos
 
14.01.14
15:00
Там не одно поле.
9 karpos
 
14.01.14
15:00
А как еще можно?
10 Fish
 
14.01.14
15:01
(8) Так ты получишь только последнее.
11 Fish
 
14.01.14
15:01
+(10) Точнее, первое :)
12 vicof
 
14.01.14
15:02
(9) ВЫБОР КОГДА..., Если Тогда...
13 vicof
 
14.01.14
15:02
+(12) ОБЪЕДИНИТЬ
14 vicof
 
14.01.14
15:02
Зависит от задачи
15 karpos
 
14.01.14
15:05
НаСервере
Функция КонтактнаяИнформация(Контрагент) Экспорт
    перем Результат;
    //Тип = перечисления.ТипыКонтактнойИнформации.Телефон;
    Запрос = Новый Запрос;
    Запрос.Параметры.Вставить("Контрагент", Контрагент);
    //Запрос.Параметры.Вставить("Тип", Тип);
    Запрос.Текст =
    "ВЫБРАТЬ
    |    КонтрагентыКонтактнаяИнформация.Тип,
    |    КонтрагентыКонтактнаяИнформация.Вид,
    |    КонтрагентыКонтактнаяИнформация.Представление
    |ИЗ
    |    Справочник.Контрагенты.КонтактнаяИнформация КАК КонтрагентыКонтактнаяИнформация
    |ГДЕ
    |    КонтрагентыКонтактнаяИнформация.Ссылка = &Контрагент";
    
    Выборка = Запрос.Выполнить().Выбрать();
    Пока Выборка.Следующий() Цикл
        Результат = Результат + Выборка.Представление;
    КонецЦикла;
    
    Возврат Результат;
КонецФункции
16 karpos
 
14.01.14
15:06
вызываю

Контрагент = Справочники.Контрагенты.НайтиПоКоду("ФР-000002");
    
    Сообщить(Контрагент);
    
    В = КонтактнаяИнформация(Контрагент);
    Сообщить(В);
17 karpos
 
14.01.14
15:06
Сообщить пусто
18 SUA
 
14.01.14
15:08
оба пусто?
тогда данных (контрагента) нет точно
19 karpos
 
14.01.14
15:08
есть
20 karpos
 
14.01.14
15:09
я же в консоли запроса вывожу
21 Euguln
 
14.01.14
15:09
(19) мягко говоря, не верю
22 vicof
 
14.01.14
15:09
(19) Задвоение в справочнике? одинаково называются элемент и группа?
23 1dvd
 
14.01.14
15:10
(15)


&НаСервере


Загогулину забыл
24 karpos
 
14.01.14
15:14
есть ваша загогулина
25 karpos
 
14.01.14
15:15
26 karpos
 
14.01.14
15:18
мне вообще надо чтоб данные из этой функций в макет в будущем попадали а сообщить это для отладки. Функцию я вызываю в другой функций которая и выводит макет

Функция СформироватьПечатнуюФорму(МассивДокументов, ОбъектыПечати)
    
    Запрос = Новый Запрос;
    Запрос.Параметры.Вставить("МассивДокументов", МассивДокументов);
    Запрос.Текст =
    "ВЫБРАТЬ
    |    ЗаказПокупателя.Номер,
    |    ЗаказПокупателя.Дата,
    |    ЗаказПокупателя.Контрагент,
    |    ЗаказПокупателя.Запасы.(
    |    Номенклатура,
    |    Количество,
    |    Цена
    |    ),
    |   ЗаказПокупателя.Работы.(
    |    Номенклатура,
    |    Количество,
    |    Цена
    |    )
    |ИЗ
    |    Документ.ЗаказПокупателя КАК ЗаказПокупателя
    |ГДЕ
    |    ЗаказПокупателя.Ссылка В(&МассивДокументов)";
    
    Выборка = Запрос.Выполнить().Выбрать();
        
    ТабДокумент = Новый ТабличныйДокумент();
    ТабДокумент.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_МолнияЗаказНаряд";
    ТабДокумент.АвтоМасштаб = Истина;
    //ТабДокумент.ОриентацияСтраницы = ОриентацияСтраницы.Ландшафт;
    Макет = ПолучитьМакет("МолнияЗаказНарядРемонт");
    Шапка = Макет.ПолучитьОбласть("Шапка");
    ТаблицаМатериалыТело = Макет.ПолучитьОбласть("ТаблицаМатериалыТело");
    ТаблицаМатериалыПодвал = Макет.ПолучитьОбласть("ТаблицаМатериалыПодвал");
    ТаблицаУслугиШапка = Макет.ПолучитьОбласть("ТаблицаУслугиШапка");
    ТаблицаУслугиТело = Макет.ПолучитьОбласть("ТаблицаУслугиТело");
    ТаблицаУслугиПодвал = Макет.ПолучитьОбласть("ТаблицаУслугиПодвал");
    Подвал = Макет.ПолучитьОбласть("Подвал");

    НомерСтроки = 1;
    СуммаИтого = 0;
    Пока Выборка.Следующий() Цикл
        
        Шапка.Параметры.Заполнить(Выборка);
        ТабДокумент.Вывести(Шапка, Выборка.Уровень());
        
        ВыборкаЗапасы = Выборка.Запасы.Выбрать();
        Пока ВыборкаЗапасы.Следующий() Цикл
            ТаблицаМатериалыТело.Параметры.Заполнить(ВыборкаЗапасы);
            СуммаИтого = СуммаИтого + Число(ВыборкаЗапасы.Цена * ВыборкаЗапасы.Количество);
            ТабДокумент.Вывести(ТаблицаМатериалыТело, ВыборкаЗапасы.Уровень());
        КонецЦикла;
        ТаблицаМатериалыПодвал.Параметры.СуммаИтого = СуммаИтого;
        ТабДокумент.Вывести(ТаблицаМатериалыПодвал);
    
        ТаблицаУслугиШапка.Параметры.Заполнить(Выборка);
        ТабДокумент.Вывести(ТаблицаУслугиШапка);
        
        ВыборкаРаботы = Выборка.Работы.Выбрать();
        Пока ВыборкаРаботы.Следующий() Цикл
            ТаблицаУслугиТело.Параметры.Заполнить(ВыборкаРаботы);
            ТаблицаУслугиТело.Параметры.НомерСтроки =  НомерСтроки;
            ТабДокумент.Вывести(ТаблицаУслугиТело, ВыборкаРаботы.Уровень());
            НомерСтроки = НомерСтроки + 1;
        КонецЦикла;


    КонецЦикла;
    
    
    //Телефон = перечисления.ТипыКонтактнойИнформации.Телефон;
    Контрагент = Справочники.Контрагенты.НайтиПоКоду("ФР-000002");
    
    Сообщить(Контрагент);
    
    В = КонтактнаяИнформация(Контрагент);
    Сообщить(В);
        
    //Запрос = Новый Запрос;
    //Запрос.УстановитьПараметр("МассивДокументов", МассивДокументов);
    //Запрос.Текст =
    //"ВЫБРАТЬ
    //|    ЗаказПокупателяРаботы.Ссылка,
    //|    ЗаказПокупателяРаботы.Номенклатура,
    //|    ЗаказПокупателяРаботы.Количество,
    //|    ЗаказПокупателяРаботы.Цена,
    //|    ЗаказПокупателяРаботы.Сумма
    //|ИЗ
    //|    Документ.ЗаказПокупателя.Работы КАК ЗаказПокупателяРаботы
    //|ГДЕ
    //|    ЗаказПокупателяРаботы.Ссылка В(&МассивДокументов)";
    //
    //Номер = 1;
    //Выборка = Запрос.Выполнить().Выбрать();
    //Пока Выборка.Следующий() Цикл
    //    ОбластьМакета = Макет.ПолучитьОбласть("ТаблицаУслугиТело");
    //    ТаблицаУслугиТело.Параметры.Номер = Номер;
    //    ТаблицаУслугиТело.Параметры.Заполнить(Выборка);
    //    ТабДокумент.Вывести(ТаблицаУслугиТело);
    //    Номер = Номер + 1;
    //    Сообщить(Выборка.Номенклатура);
    //КонецЦикла;
    
    ТаблицаУслугиПодвал.Параметры.Заполнить(Выборка);
    ТабДокумент.Вывести(ТаблицаУслугиПодвал);
    ////ОбластьМакета.Параметры.СуммаИтого =  Строка(СуммаИтого);
    ////ОбластьМакета.Параметры.Дата = Формат(Выборка.Дата, "ДЛФ=ДД");
    ////ОбластьМакета.Параметры.Дата = СсылкаНаОбъект.Дата;
    Подвал.Параметры.Заполнить(Выборка);
    ТабДокумент.Вывести(Подвал);
    
    УправлениеПечатью.ЗадатьОбластьПечатиДокумента(ТабДокумент, 1, ОбъектыПечати, СсылкаНаОбъект);
    Возврат ТабДокумент;

КонецФункции
27 vicof
 
14.01.14
15:21
(26) Ну начинай изучать отладчик
28 karpos
 
14.01.14
15:21
эта внешняя печатная обработка
29 karpos
 
14.01.14
15:21
отладчик в нее не попадает
30 karpos
 
14.01.14
15:31
ВОООООТ я убрал все параметры и функция заработала ????? что может с параметрами быть не так
31 catena
 
14.01.14
15:37
(30)Параметры запроса? После НайтиПоКоду
Сообщить(ЗначениеЗаполнено(КОнтрагент)) что говорит?
32 Alamo-10
 
14.01.14
15:45
(0) Запрос.УстановитьПараметр(), а не Запрос.Параметры
33 karpos
 
14.01.14
16:49
ребята все огромное спасибо все получилось. разобрался я. всем успехов в новом году!!!!!!!!!!!!!! Просто приятно что не кто не тролил
34 Волшебник
 
модератор
14.01.14
16:52
А что было-то?
35 Renium
 
14.01.14
17:01
(34) Да то что он параметр не устанавливал. В консоли он устанавливается автоматом, только значение вводишь в форме, а тут... :-)
Выдавать глобальные идеи — это удовольствие; искать сволочные маленькие ошибки — вот настоящая работа. Фредерик Брукс-младший