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