УТ 10.3: как сделать периодическими налоговые реквизиты организации (ИНН, КПП, Юридический адрес).

31.10.13

Разработка - Механизмы типовых конфигураций

Думаю, вряд ли кто-то будет отрицать, что в плане решения задач оперативного учёта, УТ 10.3 является одной из наиболее удачных конфигураций. Однако и в ней порой нет-нет да и наткнёшься на маленькие шероховатости, которые хочется ласково и с любовью доработать напильником. Например – налоговые реквизиты организаций и контрагентов (ИНН, КПП, Юридический адрес) не являются периодическими.

Да, к сожалению, в УТ 10.3  налоговые реквизиты организаций и контрагентов (ИНН, КПП, Юридический адрес) не являются периодическими.

Если у организации поменялся юридический адрес (и, соответственно, КПП), становится проблематичным

распечатать документы за прошлые месяцы  (со старыми значениями реквизитов). 

 

Ниже описаны небольшие доработки, которые нужно внести в конфигурацию для решения этой проблемы.

  1. Добавляем в конфигурацию новый периодический независимый регистр сведений ИсторияНалоговыхРеквизитовОрганизаций.

Периодичность – в пределах дня.  С одним измерением и тремя ресурами.

Измерение:     Объект  (тип СправочникСсылка.Организации, СправочникСсылка.Контрагенты)

Ресурсы:            ИНН (Строка, 12);   КПП (Строка, 9); ЮридическийАдрес (Строка, 200)

 

 

  1. Открываем общий модуль УправлениеКонтактнойИнформацией,   находим функцию СведенияОЮрФизЛице().

Эта функция возвращает  структуру реквизитов организации (или контрагента).

Необычайное удобство этой функции состоит в том, что она используется  при  заполнении ВСЕХ типовых печатных форм (ТОРГ-12, Акт оказания услуг, СФ, и прочее),

То есть, мы можем здесь перехватить заполненную структуру реквизитов, и внести  туда свои поправки.

 

        Переходим в конец функции, находим там следующий фрагмент:

Если Данные <> Неопределено Тогда
	Сведения.Вставить("Представление",    Данные.Наименование);
	Сведения.Вставить("ИНН",              Данные.ИНН);
	Сведения.Вставить("Телефоны",         ПолучитьТелефонИзКонтактнойИнформации(ЮрФизЛицо));
	Сведения.Вставить("НомерСчета",       Данные.НомерСчета);
	Сведения.Вставить("Банк",             Данные.Банк);
	Сведения.Вставить("БИК",              Данные.БИК);
	Сведения.Вставить("АдресБанка",       Данные.АдресБанка);
	Сведения.Вставить("КоррСчет",         Данные.КоррСчет);
	Сведения.Вставить("ЮридическийАдрес", ПолучитьАдресИзКонтактнойИнформации(ЮрФизЛицо,"Юридический"));
	Сведения.Вставить("ФактическийАдрес", ПолучитьАдресИзКонтактнойИнформации(ЮрФизЛицо,"Фактический"));

 	Если НЕ ЗначениеЗаполнено(Сведения.ПолноеНаименование) Тогда
		Сведения.ПолноеНаименование = Сведения.Представление;
	КонецЕсли;
КонецЕсли;

 

И добавляем после этого фрагмента свои пять копеек:

 

	//{ Пацталоцци
	//если налоговые реквизиты организации когда-нибудь менялись, тогда старые реквизиты (актуальные на ДатаПериода)
	//могут храниться в регистре сведений ИсторияНалоговыхРеквизитовОрганизаций
	//
	СтарыеНалоговыеРеквизиты = ПолучитьНалоговыеРеквизиты(ЮрФизЛицо, ДатаПериода);

	Если СтарыеНалоговыеРеквизиты.ИНН <> Неопределено Тогда
		Сведения.Вставить("ИНН", СтарыеНалоговыеРеквизиты.ИНН);
	КонецЕсли;

	Если СтарыеНалоговыеРеквизиты.КПП <> Неопределено Тогда
		Сведения.Вставить("КПП", СтарыеНалоговыеРеквизиты.КПП);
	КонецЕсли;

	Если СтарыеНалоговыеРеквизиты.ЮридическийАдрес <> Неопределено Тогда
		Сведения.Вставить("ЮридическийАдрес", СтарыеНалоговыеРеквизиты.ЮридическийАдрес);
	КонецЕсли;
	//} Пацталоцци

               

 

  1. Теперь осталось отписать функцию ПолучитьНалоговыеРеквизиты(ЮрФизЛицо, ДатаПериода)

Её можно поместить в любой общий модуль, который доступен на сервере и на клиенте. Например, в модуль УправлениеКонтактнойИнформацией.

(Но чтобы не париться с обновлениями, правильнее для самопальных функций создать дополнительный общий модуль).

 Вот текст функции:

 

               

	// Пацталоцци
	// Функция возвращает коды ИНН и КПП объекта (организации или контрагента) на указанную дату
	//
	Функция ПолучитьНалоговыеРеквизиты(Ссылка, ДатаПериода) Экспорт

		Запрос = Новый Запрос;
		Запрос.УстановитьПараметр("Ссылка",      Ссылка);
		Запрос.УстановитьПараметр("ДатаПериода", ДатаПериода);

 		Запрос.Текст =
		"ВЫБРАТЬ
		|	ИНН КАК ИНН,
		|	КПП КАК КПП,
		|	ЮридическийАдрес КАК ЮридическийАдрес
		|ИЗ
		|	РегистрСведений.ИсторияНалоговыхРеквизитовОрганизаций.СрезПоследних(&ДатаПериода, Объект = &Ссылка)
		|";

 		Выборка = Запрос.Выполнить().Выбрать();
		Выборка.Следующий();

 		Результат = Новый Структура("ИНН, КПП, ЮридическийАдрес");

 		Результат.ИНН	= Выборка.ИНН;
		Результат.КПП	= Выборка.КПП;
		Результат.ЮридическийАдрес	= Выборка.ЮридическийАдрес;

		Возврат Результат;

	КонецФункции

 
  1. Собственно,  этих настроек достаточно для решения задачи. 

По-хорошему, можно ещё дописать добавление записи в регистр сведений  «История налоговых реквизитов организаций» при изменении реквизитов организации (в форме элемента справочника Организации).  Однако налоговые реквизиты меняются весьма нечасто (раз в несколько лет), поэтому автоматизировать этот процесс не вижу смысла.

Достаточно просто  зайти в регистр и вручную внести туда запись.

У меня была ситуация, когда посреди квартала (точнее, с 03.09) поменялся юр.адрес и КПП одной организации.

Я открыл регистр, добавил туда 2 записи.  Одна запись с периодом 01.01.2001,  вторая - от 03.09.2013.  Вот и всё.

См. также

Механизмы типовых конфигураций Программист Платформа 1С v8.3 1C:Бухгалтерия Бесплатно (free)

Расчет себестоимости в типовых конфигурациях 1С – для многих «черный ящик», работающий по жестко зашитым в него алгоритмам. Реализация этого «черного ящика» может меняться в зависимости от конкретной конфигурации – УПП, БП 3.0, ERP. Но принцип работы везде одинаковый. Расскажем о том, как устроен расчет себестоимости, как его дорабатывать, и какие методы могут быть эффективны и без доработок.

27.12.2024    11211    Begemoth80    32    

85

СКД Механизмы типовых конфигураций Запросы Программист Платформа 1С v8.3 1С:Зарплата и кадры государственного учреждения 3 1С:Зарплата и Управление Персоналом 3.x Россия Бесплатно (free)

Работая с типовыми отчетами в конфигурациях «Зарплата и управление персоналом, редакция 3», «Зарплата и кадры государственного учреждения, редакция 3» и подобных, в схемах компоновки данных можно встретить конструкции запросов, которые обращаются к некоторым виртуальным таблицам.

20.08.2024    2372    PROSTO-1C    0    

21

Механизмы типовых конфигураций Программист Платформа 1С v8.3 1С:Комплексная автоматизация 2.х Россия Бесплатно (free)

Эта ошибка была обнаружена мной в типовой конфигурации 1С:Комплексная автоматизация 2 (2.5.16.115), БСП версия 3.1.9.302. Возникает она после того, как вы добавляете в расширение бизнес-процесс или задачу, выполняете обновление идентификаторов метаданных расширений, но ошибка при записи любого элемента справочника "Профили групп доступа" всё равно остаётся.

01.07.2024    2478    Vidz    0    

12

Механизмы типовых конфигураций Программист Платформа 1С v8.3 1C:Бухгалтерия Россия Бесплатно (free)

Очень часто в написании кода требуется обращаться к предопределённым значениям. Если идёт обращение к типовым предопределённым значениям, то проблем не возникает.

24.06.2024    1401    olja-ljaaa    0    

3
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. Пацталоцци 119 01.11.13 11:13 Сейчас в теме
Я в шоке...
83 просмотра и всего один плюс...
В чём дело, коллеги?
Если есть какие-то замечания/нарекания, прошу поделиться.
Sem0709; a1x; Aniskin86; +3 Ответить
7. anchovy 24 06.11.13 10:05 Сейчас в теме
(1) делюсь.
Использовать периодический РС для хранения периодически изменяющихся данных это хорошо. Что нового в вашем решении? Ничего. Тогда за что много плюсов должно быть поставлено?
DenisCh; VasMart; +2 1 Ответить
8. Пацталоцци 119 06.11.13 12:34 Сейчас в теме
(7) anchovy,
Тогда за что много плюсов должно быть поставлено?

Где я написал, что много плюсов ДОЛЖНО быть поставлено? Покажи мне, где у меня есть такие слова, будь добр.
Мне нафиг твой плюс не нужен, оставь его себе и береги как зеницу око!

Что касается предлагаемого мною решения, ты мог заметить, оно заключается не только в тупой и банальной идее, что "Использовать периодический РС для хранения периодически изменяющихся данных это хорошо".

В статье перечислены детально все правки, которые нужно внести в конфигурацию. Тот, кто столкнулся с похожей проблемой, может воспользоваться статьёй и решить проблему за 10 минут. Если я смог кому-то сэкономить время, думаю он плюсанёт. Ты не относишься к этой категории, поэтому всего хорошего, иди дальше со своим драгоценным плюсом.
andrey-prog; О.Ж; Sem0709; +3 Ответить
2. Одинец 250 02.11.13 05:57 Сейчас в теме
Добрый день! Если уж начал делать такую доработку, то логичнее дописать добавление записи в регистр сведений "История налоговых реквизитов организаций", а иначе как сам пишешь: "налоговые реквизиты меняются весьма нечасто (раз в несколько лет), поэтому автоматизировать этот процесс не вижу смысла"(С)Панталоцци. Так что или закончи доработку и получи "+" или "автоматизировать этот процесс не вижу смысла."(С)Панталоцци
3. Пацталоцци 119 02.11.13 07:49 Сейчас в теме
Если бы ты повнимательнее читал статью, то понял бы, что цель доработки - решить проблему распечатки старых документов (со старыми значениями реквизитов).
И доработка полностью выполняет свою цель.
Следить за актуальностью регистра - это второй вопрос. На мой взгляд, тут удобнее "ручное управление" содержимым регистра.

Как я уже сказал, налоговые реквизиты меняются очень редко. У меня база возрастом 9 лет, 11 организаций.
И за все 9 лет только две записи в этом регистре. За каким лядом автоматизировать это?
4. TMV 14 02.11.13 08:58 Сейчас в теме
А в каких случаях меняется ИНН? Не нужно ли заводить нового контрагента?
5. Пацталоцци 119 02.11.13 09:04 Сейчас в теме
ИНН юридического лица меняется при реорганизации (например, было ЗАО, стало ООО)
Юридический адрес и КПП могут меняться чаще - например, при переезде
6. gull22 105 06.11.13 09:17 Сейчас в теме
Подощли к такой же проблеме. Плюсую за ее решение.
9. anchovy 24 06.11.13 14:05 Сейчас в теме
Тренироваться.
Медитировать.
Учить Русский язык.
Удачи.
10. Пацталоцци 119 06.11.13 15:05 Сейчас в теме
Я тебя тоже люблю.
Давай, покеда.
11. nick_krsk 19 02.02.15 09:47 Сейчас в теме
Спасибо за наводку, буду прикручивать к БП 3.
12. yurik32 09.03.15 17:00 Сейчас в теме
Спасибо, не успел купить юр адрес, и уже такую нужную статью нашел
13. ildarovich 7941 16.04.15 13:55 Сейчас в теме
Спасибо.

Попробовал на одной базе реализовать этот подход.
Но с небольшими изменениями.
Мне показалось, что логичнее было бы запоминать только старые значения реквизитов.
Которые были "до" даты их изменения. Это значит, что нужно использовать не срез последних, который определяет действующие реквизиты, а срез первых. Иначе непонятно, с какого периода ставить действие старых реквизитов.
office2@cyberax.ru; ice-net; moreZ; +3 Ответить
14. sinTambov 04.08.15 09:35 Сейчас в теме
15. okrd 08.09.17 13:05 Сейчас в теме
16. FarFar 47 29.03.18 11:59 Сейчас в теме
Спасибо п.2, где указано конкретное место, куда вставить новые данные.
А периодический регистр универсальный у меня уже свой был ))
17. script 128 01.11.18 19:35 Сейчас в теме
Сделал копию регистра сведений КонтактнаяИнформация - назвал ИстоиряКонтактнойИнформации.
Сделал подписку на события ПриЗаписи для РС.КонтактнаяИнформация
Общиймодуль.ИсторияКонтактнойИнформации, где храниться процедура из подписки на событие.

Там описал процедуру, которая при любых изменениях в контактной информации проверяет отличие от последней записи в истории (РС.ИстоиряКонтактнойИнформации). Если отличия есть в полях: "Представление" и "Комментарий", в РС.ИстоиряКонтактнойИнформации добавляется новая запись с актуальными данными. (Можно конечно проверить все поля)

Таким образом история собирается автоматически. А дальше - как у автора.
18. romuales 23.01.19 13:51 Сейчас в теме
Спасибо За подсказку. Дописал себе еще и ФактическийАдрес. По аналогии с Юридическим.
Пацталоцци; +1 Ответить
19. asport 27.02.19 15:25 Сейчас в теме
Здравствуйте, для меня все это большая загадка, но может быть вы подскажите):
После импорта из 7.7 для всех старых контрагентов адрес печатается в документах, а для новых нет
Т.е. в карточке адрес есть, но его код не 00...01 или 00...02, а другой и в документах пусто, только инн и кпп
Смотрю в демо версию, там если добавить новую запись для юрадрес или фактичесий, появляется новое значение, с новым кодом и тогда тоже не печатает адрес в документах, а со значением 00...01 печатает
Я бы рад выбрать какое то другое значение для юр адреса, но могу только плодить новые)
подскажите пожалуйста, как это сделать?

Мне показалось, что в этой статье описана похожая задача, но не может же быть все так страшно в реализации!)
20. CaSH_2004 373 07.02.20 16:09 Сейчас в теме
Проблема частая и в принципе хорошо что есть статья.
Плюсов мало т.к. для опытного спеца она решается за 30 мин с нуля, при условии же поиска решения через интернет прикинем:
1. зайти в браузер, набить запрос и изучить кучу ссылок - 20 мин
2. найти данную статью, прочесть ее и осмыслить - 10 мин
3. прочесть комменты и осмыслить их - 10 мин
4. внести указанные изменения (кстати, если рассчитано на начинающих, то где сказано что нужно монопольный доступ к базе? Проблема то возникает наверное не в выходные дни ночью, а в рабочее время когда народ работает в базе и дорога каждая минута - а надо печатать документы!) - 10 мин
В итоге проигрыш в 20 мин, ну это так навскидку, опыт подсказывает что может и больше выйти если на другое отвлечься.

Плюс в данной статье только то что она поднимает типовую проблему которую разные люди по разному решают и тут у каждого свой подход. И хорошо что все их описывают тут.
Я вот стараюсь все делать универсально. Ведь кроме ИНН может поменяться любой реквизит у любого объекта.
Поэтому верно тут сказал один что использует универсальный периодический регистр. Я также один раз написал -
Измерения - Объект+Имя реквизита
Ресурсы - Значение (всех возможных типов), Автор и Дата установки чтобы не было вопросов кто и когда внес изменения
21. lordmax89 02.08.24 14:20 Сейчас в теме
(20) Здравствуйте, правильно ли я понимаю что это "типовая проблема" и решается только похожими способами?
Столкнулись с такой проблемой, в организации сменился юрадрес и кпп, основная база 1с у нас КА2 (8.3.25.1286 - 2.5.18.41), история изменения реквизитов присутствует в конфигурации изначально, но вот при внесении новых реквизитов, в печатных формах документов за даты старых реквизитов - начинают подставляться новые
Прикрепленные файлы:
Оставьте свое сообщение