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