admin@stark.ua @ Сегодня, 8:55
,
В модуле документа есть код - курите:
Процедура УстановитьНомерПоручения()
Если глЗначениеПеременной("ИспользоватьУправляемыеБлокировки") Тогда
СтруктураПараметровБлокировка = Новый Структура("ТипТаблицы, ИмяТаблицы", "Справочник", "БанковскиеСчета");
ЗначенияБлокировки = Новый Структура;
ЗначенияБлокировки.Вставить("Ссылка", СчетОрганизации);
ОбщегоНазначения.УстановитьУправляемуюБлокировку(СтруктураПараметровБлокировка, ЗначенияБлокировки, , Ложь, "");
КонецЕсли;
Запрос = Новый Запрос;
Запрос.УстановитьПараметр("ДатаНачалаГода", НачалоГода(Дата));
Запрос.УстановитьПараметр("ДатаКонцаГода", КонецГода(Дата));
Запрос.УстановитьПараметр("Организация", Организация);
Запрос.УстановитьПараметр("СчетОрганизации", СчетОрганизации);
Запрос.УстановитьПараметр("Ссылка", Ссылка);
Запрос.Текст =
"ВЫБРАТЬ РАЗРЕШЕННЫЕ
| НомерПоручения КАК НомерПоручения
|ИЗ
| Документ.ПлатежноеПоручениеИсходящее КАК ПлатежноеПоручение
|
|ГДЕ
| ПлатежноеПоручение.Организация = &Организация
| //самого себя не учитываем
| И ПлатежноеПоручение.Ссылка <> &Ссылка
| И ПлатежноеПоручение.СчетОрганизации = &СчетОрганизации
| И ПлатежноеПоручение.Дата >= &ДатаНачалаГода
| И ПлатежноеПоручение.Дата <= &ДатаКонцаГода";
СписокПлатежек = Запрос.Выполнить().Выбрать();
ТаблицаЗначений = Новый ТаблицаЗначений;
ТаблицаЗначений.Колонки.Добавить("Номер");
ТаблицаЗначений.Колонки.Добавить("Длина");
Пока СписокПлатежек.Следующий() Цикл
НоваяСтрока = ТаблицаЗначений.Добавить();
НоваяСтрока.Номер = СписокПлатежек.НомерПоручения;
НоваяСтрока.Длина = СтрДлина(СписокПлатежек.НомерПоручения);
КонецЦикла;
ТаблицаЗначений.Сортировать("Длина Убыв, Номер Убыв");
Если ТаблицаЗначений.Количество() > 0 Тогда
Попытка
НомерПоручения = Формат(Число(ТаблицаЗначений[0].Номер) + 1, "ЧГ=0");
Исключение
НомерПоручения = 1;
КонецПопытки;
Иначе
НомерПоручения = 1;
КонецЕсли;
КонецПроцедуры