Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Проверка регистра по параметрам проведения заявок
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 > Программисту > Программирование в 1С Предприятие 8.3
burza
как сюда дописать еще параметр Подразделение.

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


Есть документ который сравнивает проведенный документ по статье и сумму. Надо еще по подразделению
Bernet
В параметрах связи у вас указано подразделение, если вы имели в виду как отобрать по 1-му подразделению, то в этой строке:
|    РегистрСведений.ЛимитыПодразделений.СрезПоследних(&Дата, СтатьяДвиженияДенежныхСредств = &СтатьяДвиженияДенежныхСредств) КАК ЛимитыПодразделенийСрезПоследних

добавьте ещё один параметр и будет вам счастье, типа такого:
|    РегистрСведений.ЛимитыПодразделений.СрезПоследних(&Дата, СтатьяДвиженияДенежныхСредств = &СтатьяДвиженияДенежныхСредств И Подразделение = &Подразделение) КАК ЛимитыПодразделенийСрезПоследних
burza
Bernet @ Сегодня, 9:50 необходимо зарегистрироваться для просмотра ссылки ,
Не работает у меня происходит сравнение по сумме и статье дописываю это по подразделению не идет сравнение
Bernet
Ищите в сторону данных. Кстати по сумме в самом запросе я сравнения не вижу, скорее всего вы это делаете при обходе результата запроса. Вы тут сравниваете по статье + подразделение. В итоге у вас запрос выберет все строки из таблицы "ЛимитыПодразделенийСрезПоследних", где есть указанная статья и подразделение и по соединению выберет из таблицы "ВыработкаБюджетаОбороты" только те строки в которых есть такая же статья и подразделение. Если не получаете желаемый результат - копайте в сторону данных. Может в регистрах нет нужных вам записей, может по дате не проходят.
burza
Bernet @ Вчера, 10:23 необходимо зарегистрироваться для просмотра ссылки ,
Вот Полный запрос.
Процедура ДвиженияВыработкаБюджетаОбработкаПроведения(Источник, Отказ, РежимПроведения) Экспорт
//запись движений
НаборЗаписей = Источник.Движения.ВыработкаБюджета;
НоваяСтрока = НаборЗаписей.Добавить();
НоваяСтрока.СтатьяДвиженияДенежныхСредств = Источник.СтатьяДвиженияДенежныхСредств;
НоваяСтрока.Сумма = Источник.СуммаВБазовойВалюте;
НоваяСтрока.Период = Источник.Дата;
НоваяСтрока.Месяц= Источник.Дата;
НоваяСтрока.Подразделение = Источник.Подразделение;
НоваяСтрока.Регистратор = Источник.Ссылка;
НаборЗаписей.Записать();
// Проверка

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

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

burza @ Сегодня, 10:50 необходимо зарегистрироваться для просмотра ссылки ,
Разобрался сам.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.