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

Помогите разобраться с регистром сведений.

Автор Roman159, 28 апр 2012, 08:49

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

Roman159

Здравствуйте!!!
Есть документ называется "Прием Отчетности",есть реквизит Контрагент и табличная часть с полем "ОрганВласти",а также есть регистр сведений "РегистрРегистрацииДоверенности"(с измерениями ОрганВласти и Контрагент,и ресурсами ДатаВыдачиДоверенности,ДатаОкончанияДействияДоверенности).в данный регистр сведений записываются данные о сроках действия доверенности которые заполняются с помощью документа "РегистрацияДоверенности".Так вот можно ли сделать так что бы в Документе "ПриемОтчетности" при проведений документа проверялась дата действия доверенностей на данный орган власти по данному контрагенту,и если доверенность истекла или ее нет то выдавалась ошибка и документ не проводился?я сделал так что бы при изменений органа власти в табличной части документа выдавалась ошибка,а вот что бы документ не проводился не могу сделать,подскажите пожалуйста как это реализовать.вот код который написан в ПроцедуреОрганВласти при изменений:
ОрганВласти=СтрокаТЧ.ОрганВласти;
Запрос=Новый Запрос;
Запрос.Текст="ВЫБРАТЬ
              | РегистрРегистрацииДоверенности.Контрагент,
              | РегистрРегистрацииДоверенности.ОрганВласти,
              | РегистрРегистрацииДоверенности.ДатаВыдачиДоверенности,
              | РегистрРегистрацииДоверенности.ДатаОкончанияДействияДоверенности
              |ИЗ
              | РегистрСведений.РегистрРегистрацииДоверенности КАК РегистрРегистрацииДоверенности
              |ГДЕ
              | РегистрРегистрацииДоверенности.Контрагент = &Контрагент
              | И РегистрРегистрацииДоверенности.ОрганВласти = &ОрганВласти
              | И РегистрРегистрацииДоверенности.ДатаВыдачиДоверенности <= &Дата
              | И РегистрРегистрацииДоверенности.ДатаОкончанияДействияДоверенности >= &Дата";
  Запрос.УстановитьПараметр("Контрагент",Контрагент);
  Запрос.УстановитьПараметр("ОрганВласти",ОрганВласти);
  Запрос.УстановитьПараметр("Дата",Дата);
  Выборка = Запрос.Выполнить().Выбрать();
  Если Выборка.Количество()=0 Тогда
Сообщить("Срок дейсвия доверенности истек!!!");
Отказ = Истина;
Возврат;

has

Чтобы документ не проводился необходимо в обработке проведения запрос выполнять и ставить отказ = истина, тогда не проведет. Просто в обработку проведения затолкать вобщем и все.

Roman159

я так пробовал...пишет "Переменная не определена (СтрокаТЧ)".и не могу понять как сделать так что бы каждую строку табличной части проверял,ведь не только одна отчетность будет отправляться,их будет несколько,и в разные органы власти

cska-fanat-kz

Цикл прогоните
Для каждого СтрокаТЧ ИЗ <<ВашаТЧ>> Цикл

КонецЦикла;
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

Roman159

а запрос в цикл поставить или как?я просто в этом еще не очень разбираюсь

Roman159

все разобрался)есть еще один вопрос а можно ли сделать так что бы в табличной части указывалось в какой именно строчке истекла доверенность?

cska-fanat-kz

Цитата: Roman159 от 28 апр 2012, 09:53
а запрос в цикл поставить или как?я просто в этом еще не очень разбираюсь

запрос в цикле - очень плохо.
постарайтесь этого избежать.
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

cska-fanat-kz

Не знаю как вы "разобрались"...

При обходе ТЧ циклом "Для каждого" у вас всегда есть

СтрокаТЧ.НомерСтроки
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

Roman159

Цитата: cska-fanat-kz от 28 апр 2012, 10:20
Цитата: Roman159 от 28 апр 2012, 09:53
а запрос в цикл поставить или как?я просто в этом еще не очень разбираюсь

запрос в цикле - очень плохо.
постарайтесь этого избежать.
а как можно этого избежать?

Теги:

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

Рейтинг@Mail.ru

Поиск