Всем доброго времени суток. Помогите пожалуйста найти обработку чтобы автоматически проставить номера ИНН в справочнике Контрагенты. Бухгалтера добавляли контрагентов без инн, якобы они не нужны им в работе. Инн-ки нужно просто проставить по шаблону 0000000000, 0000000001, 0000000002 и т.д. все разом
По теме из базы знаний
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
Можно так
Процедура Сформировать()
ШаблонИнн=Число(1000000001);
Контр=СоздатьОбъект("Справочник.Контрагенты"); // Вместо Контрагенты вписать идентификатор справочника из конфигуратора
Контр.ВыбратьЭлементы();
Пока контр.ПолучитьЭлемент()=1 Цикл
ШаблонИнн=ШаблонИнн+1;
Контр.УстановитьАтрибут("ИНН",ШаблонИнн); // Вместо "ИНН" вписать идентификатор реквизита из конфигуратора
Контр.Записать();
КонецЦикла;
КонецПроцедуры
Показать
Для ТиС 9.2, например, так:
При этом, уже заполненные ИНН будут сохранены.
Не забывайте про резервную копию!
Всё это в модуль формы новой обработки и выполнить.
//*******************************************
Функция СформироватьИНН(Счетчик, НеобходимаяДлина)
ИНН = Строка(Счетчик);
ТекущаяДлина = СтрДлина(ИНН);
Нули = "";
Для А = 1 По НеобходимаяДлина - ТекущаяДлина Цикл
Нули = Нули + "0";
КонецЦикла;
Возврат (Нули + ИНН);
КонецФункции
//*******************************************
Процедура Сформировать()
ДлинаИНН = 10; //Меняем здесь длину кода
Счетчик = 0;
НачатьТранзакцию();
Спр = СоздатьОбъект("Справочник.Контрагенты");
Спр.ВыбратьЭлементы();
Пока Спр.ПолучитьЭлемент() = 1 Цикл
Если Спр.ЭтоГруппа() = 1 Тогда
Продолжить;
КонецЕсли;
ЮФЛ = Спр.ЮрФизЛицо;
Если ЮФЛ.Выбран() = 0 Тогда
Продолжить;
КонецЕсли;
Если ПустаяСтрока(ЮФЛ.ИНН) = 0 Тогда
Продолжить;
КонецЕсли;
ЮФЛОбъект = СоздатьОбъект("Справочник." + ЮФЛ.Вид());
Если ЮФЛОбъект.НайтиЭлемент(ЮФЛ) = 1 Тогда
Счетчик = Счетчик + 1;
ЮФЛОбъект.ИНН = СформироватьИНН(Счетчик, ДлинаИНН);
ЮФЛОбъект.Записать();
Сообщить("Контрагенту """ + Спр.ТекущийЭлемент() + """ присвоен ИНН!");
Иначе
Сообщить("Не удалось получить объект: " + ЮФЛ, "!");
КонецЕсли;
Состояние("Присвоено ИНН: " + Счетчик);
КонецЦикла;
ЗафиксироватьТранзакцию();
КонецПроцедуры
ПоказатьПри этом, уже заполненные ИНН будут сохранены.
Не забывайте про резервную копию!
Всё это в модуль формы новой обработки и выполнить.
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот