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

Внешний отчет на выборку

Автор sail, 10 янв 2014, 17:03

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

sail

Помогите мне пожалуйста, нужно срочно. Создаю отчет на выборку. Нужно из справочника "Контрагенты "выбрать тех контрагентов у которых есть договора с наименованием "Саночистка". В диалоге задается период и дата договоров должна быть из этого периода. Еще проблема в том, что наименования пользователи вводили по-разному: кто саночистка, кто сан.оч и др., поэтому договор по наименованию должет отбираться по первым 3-м символам. Спасибо за помощь. Выложу свой код и внешний отчет прикреплю.

Процедура Сформировать()
   Таб = СоздатьОбъект("Таблица");
   Таб.ИсходнаяТаблица("Таблица");
   Таб.ВывестиСекцию("Шапка1");   
   
   спрк=создатьобъект("Справочник.Контрагенты");
   спрд=создатьобъект("Справочник.Договора");   
   [size=78%]  [/size][/size]
    спрк.ВыбратьЭлементы();   
   пока спрк.получитьэлемент()<>0 цикл 
            
      спрд.ИспользоватьВладельца(спрк.ТекущийЭлемент());
      спрд.выбратьЭлементы(); 
   
      Пока спрд.ПолучитьЭлемент() <> 0 Цикл
         Если спрд.ПометкаУдаления() = 1 тогда
            продолжить;
         КонецЕсли;   
      если (спрд.Наименование ="Саночистка") и (спрд.ДатаДоговора>=ВыбДатаНач) и (спрд.ДатаДоговора<=ВыбДатаКон)  тогда
            договор = спрд.Код;        
            датадог= спрд.ДатаДоговора;
       
      конецесли;
      конецЦикла;   
      [/size]
      Таб.ВывестиСекцию("Строка1");
   КонецЦикла    
      
таб.опции(0,0,0);
   Таб.Показать();
КонецПроцедуры




Процедура ПриОткрытии()
   ВыбДатаНач = НачМесяца(РабочаяДата());
   ВыбДатаКон = КонМесяца(РабочаяДата());
КонецПроцедуры

sail

Все так сложно, если никто не отвечает? Мне уже к понедельнику нужно. Подскажите хот в каком направлении двигаться. Может тут надо запрос на выборку создать.

pavl_vs

Цитата: sail от 11 янв 2014, 13:00
Все так сложно, если никто не отвечает? Мне уже к понедельнику нужно. Подскажите хот в каком направлении двигаться. Может тут надо запрос на выборку создать.
Вы не назвали конфигурацию. В моей (тоже не назову) справочник "Договоры" подчинен справочнику "Организации", а не "Контрагенты", что мне кажется более логичным.

1. Проверьте подчиненность.
2. Посмотрите состав реквизитов Контрагента; может есть ОсновнойДоговор (т.е у меня один и тот же договор могут выполнять разные контрагенты и, с другой стороны, одному контрагенту можно "назначить" несколько договоров: будет несколько строк на одного и того же контрагента, но в каждой строке свой ОсновнойДоговор).

Если коротко, то в моем варианте Ваша обработка работает без привлечения внутреннего (подчиненного) цикла; а отбор по наименованию (ОсновногоДоговора) я выполнил не по равенству, а по фрагменту строки (метод "Найти").

Alex56

Нужно постоянно трудиться.

sail

Спасибо всем за участие. Я разобралась сама.:zebzdr:

Теги:

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

Рейтинг@Mail.ru

Поиск