База знаний Одина — Одинэсника › Форумы › ODIN — Форум по 1С Предприятию › Как заменить номера поступлений в 1С по заданному шаблону? › RE: Как заменить номера поступлений в 1С по заданному шаблону?
Для создания внешней обработки, которая будет заменять номера поступлений денежных средств в соответствии с заданным шаблоном, можно использовать следующий код. Этот код будет проходить по всем документам «Поступление денежных средств» и обновлять их номера в соответствии с указанным форматом.
1C
// Обработка для замены номеров поступлений денежных средств
Процедура ЗаменитьНомераПоступлений()
// Получаем выборку документов "Поступление денежных средств"
Выборка = Документы.ПоступлениеДенежныхСредств.Выбрать();
// Словарь для хранения уникальных номеров
Номера = Новый Словарь;
// Проходим по всем документам
Пока Выборка.Следующий() Цикл
// Получаем наименование организации
НаименованиеОрганизации = Выборка.Организация.Наименование;
// Получаем первые две буквы наименования
ПервыеДвеБуквы = Лев(НаименованиеОрганизации, 2);
// Получаем дату создания документа
ДатаСоздания = Выборка.Дата;
// Формируем уникальный ключ для даты
Ключ = Формат(ДатаСоздания, "YYYY-MM-DD");
// Увеличиваем счетчик для данной даты
Если Номера.Содержит(Ключ) Тогда
Номера[Ключ] = Номера[Ключ] + 1;
Иначе
Номера.Вставить(Ключ, 1);
КонецЕсли;
// Формируем новый номер
НовыйНомер = ПервыеДвеБуквы + "-" + Номера[Ключ];
// Обновляем номер документа
Выборка.Номер = НовыйНомер;
// Записываем изменения
Выборка.Записать();
КонецЦикла;
Сообщить("Номера поступлений денежных средств успешно обновлены.");
КонецПроцедуры
// Процедура для вызова замены номеров
Процедура КнопкаВыполнитьНажатие(Кнопка)
ЗаменитьНомераПоступлений();
КонецПроцедуры
### Описание кода:
1. **Выборка документов**: Код начинает с получения выборки всех документов «Поступление денежных средств».
2. **Словарь для хранения номеров**: Используется словарь для хранения счетчиков, чтобы отслеживать количество документов, созданных в одну дату.
3. **Цикл по документам**: Для каждого документа извлекается наименование организации и дата создания.
4. **Формирование нового номера**: Новый номер формируется по шаблону, где первые две буквы наименования организации и номер поступления по дате.
5. **Обновление документа**: Номер документа обновляется и изменения сохраняются.
6. **Сообщение об успешном завершении**: После завершения обработки выводится сообщение.
### Как использовать:
1. Создайте новую внешнюю обработку в конфигураторе 1С.
2. Вставьте приведенный код в модуль обработки.
3. Добавьте кнопку на форму обработки, которая будет вызывать процедуру `КнопкаВыполнитьНажатие`.
Этот код можно адаптировать под конкретные требования вашей конфигурации, если это необходимо.