Имя: Пароль:
1C
 
Добавить федеральный округ по номеру ИНН
0 тратата
 
05.04.24
05:55
Добрый день. Есть задача В новом расширении добавить справочник «Федеральные округа» с полями «Наименование
округа» и «Код округа». Доработать возможность загрузки справочника из Эксель. (файл «Федеральные округа»). В контрагенте (Справочник.Партнеры.Форма.ФормаЭлементаРеквизитыКонтрагента) добавить поле «Федеральный округ» с ссылкой на созданный справочник. При создании контрагента автоматически заполнять федеральный округ по логике – первые две цифры ИНН = Код федерального округа.

Добавлен справочник "федеральные округа", структура состоит из стандартных реквизитов код и наименование, заполняю через обработку файлом эксель.
Но все не могу сделать так, чтобы подставлялся регион, пишу код:
&НаСервере
Процедура Расш1_ПриСозданииНаСервереПосле(Отказ, СтандартнаяОбработка)
	Запрос = Новый Запрос;
	Запрос.Текст = "ВЫБРАТЬ
				   |	Расш1_ФедеральныеОкруга.Код КАК КодОкруга,
				   |	Расш1_ФедеральныеОкруга.Наименование КАК Наименование
				   |ИЗ
				   |	Справочник.Расш1_ФедеральныеОкруга КАК Расш1_ФедеральныеОкруга";  
	Таблица = Запрос.Выполнить().Выгрузить();	
	ИНН = Элементы.ИНН;
	НомерРегиона = Лев(ИНН, 2);
		
	Для Счет = 0 По Таблица.Количество() - 1 Цикл
		Строка = Таблица[Счет];
		Если Строка(Строка.КодОкруга) = Строка(НомерРегиона) Тогда
ЭтаФорма.Элементы.ФедеральныеОкруга = Строка.Наименование;
		Иначе Счет = Счет + 1;
		КонецЕсли;
		Прервать;
	КонецЦикла;
	
	
КонецПроцедуры


Поле на форму добавлено, путь к данным есть, в чем может быть ошибка?
1 mikecool
 
04.04.24
16:52
ошибка в ИИ
2 Ненавижу 1С
 
04.04.24
17:00
какая конфигурация?
3 тратата
 
04.04.24
17:00
(1) а в чем ошибка?
(2) УТ
4 Климов Сергей
 
04.04.24
17:05
ПриСозданииНаСервере реквизиты объекта ещё не заполнены.
Для существующего элемента используйте ПриЧтенииДанныхНаСервере. А для нового - ПриИзмении для ИНН.
5 timurhv
 
04.04.24
17:55
> добавить поле «Федеральный округ» с ссылкой на созданный справочник
1. ЭтаФорма.Элементы.ФедеральныеОкруга = Строка.Наименование;
2. ЭтаФорма - нет такого, рано или поздно получите по шапке при обновлении платформы.
ЭтаФорма (ThisForm)
Доступность:
Толстый клиент.
3. Присваиваете значение элементу формы, а не реквизиту.
4. "Для Счет = 0 По Таблица.Количество() - 1 Цикл"
Пишите для "Для Каждого ФедеральныйОкруг Из Таблица Цикл"
5. По "НомерРегиона = Лев(ИНН, 2);" можно сразу запросом выбрать нужный регион и не обходить каждый раз все федеральные округа.
6. "ИНН = Элементы.ИНН;" если поставить точку останова что тут в ИНН присваивается?
7. "Таблица = Запрос.Выполнить().Выгрузить();" - используйте выборку запроса, а не выгрузить.
8. "Прервать; КонецЦикла;" - это что?
6 maxab72
 
04.04.24
19:22
Ряд регионов: Крым и т.п. используют номера налоговых других регионов, для обхода санкций.
7 тратата
 
04.04.24
20:37
Таблица = Запрос.Выполнить().Выгрузить();    
    НомерРегиона = Лев(ИНН, 2);
    
    Для каждого ФедеральныйОкруг Из Таблица Цикл
        Если ФедеральныйОкруг.КодОкруга = НомерРегиона Тогда
            Элементы.Округ = ФедеральныйОкруг.Наименование;
        Иначе
            Продолжить;
            КонецЕсли;
            КонецЦикла;
(5)
1. ЭтаФорма убрана
2. Не понимаю, я же использую Элементы.ФедеральныеОкруга, это элемент формы
3. Как тогда должен выглядеть цикл
5. ИНН все разные и регион должен автоматически вычисляться
6. Эта строчка была лишней, вы правы
7. При использовании выборки нужно указывать группировки, а у меня и группировать-то нечего
8 тратата
 
04.04.24
20:41
Извините, совсем запутались... :(
9 Aleksey
 
05.04.24
01:17
(6) более того ИП может работать в любом округе, а ИНН у него один.
голова у ООО может переехать, с сохранением ИНН
А у иностранных представительств ИНН начинается с индекса, а не  с кода налогового органа.

Короче походу тестовое задание, для приема на работу
10 тратата
 
05.04.24
07:19
(9) задача не тестовая, это прихоть заказчика
Ну раз ему прям надо чтобы так вычислялся регион, то почему бы и нет
Есть два вида языков, одни постоянно ругают, а вторыми никто не пользуется.