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

Регистр накопления

Автор Kseniya_, 09 янв 2013, 03:26

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

Kseniya_

Здравствуйте! Создала документ «ДоговорАкт», в котором содержится информация о заключенных договорах и документах по договорам (счета, акты выполненных работ). Затем создала регистр накопления «РегистрАкт». Сделала просмотр с формы этого регистра. Теперь необходимо, чтобы осуществлялся поиск записей регистра по датам выполненных работ. И вывод результата на форму. На форме создала два дополнительных поля с типами Дата для ввода периода для поиска и кнопку Поиск. Никак не получается это реализовать.
&НаКлиенте
Процедура Поиск(Команда) Экспорт
Дата1 = ДатаНачала;   
Дата2 = ДатаКонца;

ПоискСтрок(Дата1, Дата2);
КонецПроцедуры

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

    НаборЗаписей = РегистрыНакопления.РегистрАкты.СоздатьНаборЗаписей();
    Выборка = ПоискЗапрос.Выполнить().Выбрать();
   
             Пока Выборка.Следующий() Цикл
      НаборЗаписей.Отбор.Регистратор.Установить(Выборка.Регистратор);
      ЗаполнитьЗначенияСвойств(НаборЗаписей.Добавить(), Выборка);
                            НаборЗаписей.Прочитать();
   КонецЦикла;
КонецПроцедуры

Может кто-то сталкивался с такой проблемой и подскажет, как решить такую задачку. Заранее СПАСИБО!

MuI_I_Ika

Цитата: Kseniya_ от 09 янв 2013, 03:26Пока Выборка.Следующий() Цикл
      НаборЗаписей.Отбор.Регистратор.Установить(Выборка.Регистратор);
      ЗаполнитьЗначенияСвойств(НаборЗаписей.Добавить(), Выборка);
                            НаборЗаписей.Прочитать();
   КонецЦикла;

Если вы пошли таким путем, то у вас ошибка вот здесь. Непонятно где вы хотите произвести отбор если на форме то и делать это нужно для соответствующего списка, а не для произвольного набора записей. У вас должно быть поле с типом динамический список. Для него и нужно устанавливать отбор.

В данном случае запрос не потребуется. Просто нужно формировать динамический список и в нем устанавливать отбор.



Kseniya_

Т.е. запрос вообще не нужен?

MuI_I_Ika

Ну этот запрос можно использовать в динамическом списке.

Kseniya_

Получается динамический список - создается на форме списка автоматически? Подскажите где можно почитать про динамические списки (что это и как это работает)? Опять же правильно ли,что я использую регистр накопления? Можно так сделать?

MuI_I_Ika

Я не знаю всей задачи. Возможно, и правильно. Вообще если работает и клиент доволен, то правильно.

Про динамические списки можно почитать в документации и на дисках ИТС. Создается он в полуавтоматическом режиме. Я же правильно понял, что у вас управляемые формы. Вы просто создаете реквизит формы, указываете для него источник - регистр, если надо меняете на произвольный запрос (причем он сам генерится), после чего выводите на форму.

Kseniya_

Спасибо большое :-) Направили меня в нужную сторону.Все получилось через динамический список :-) и никакого запроса не надо

Теги:

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

Рейтинг@Mail.ru

Поиск