УТ 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 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 Россия Абонемент ($m)

Продолжение темы вынесения кусков повторно-используемого кода в запрос. В прошлый раз мы сделали это с вычислением пользовательских формул. Здесь замахнулись на формулы, задаваемые пользователем запросами.

1 стартмани

11.04.2024    481    tango    0    

3

Формула в реквизите. Приквелл к сериалу "Ценовая власть"

Механизмы типовых конфигураций Платформа 1С v8.3 1С:Управление торговлей 11 Россия Абонемент ($m)

Какому-либо элементу списка сопоставляется числовое значение, зависящее от других значений, причем эта зависимость изменяется от элемента к элементу. Так, в справочнике "Валюты" курс какой-либо валюты может быть задан формулой (или даже запросом) от значения другой валюты. А в справочнике "Виды цен" формула определяет расчет цены для товарной позиции, т.е. элементов справочника "Номенклатура", у которых в карточке указан этот вид цены. А в 1С:ERP, например, этот механизм используется в ресурсной спецификации.

10 стартмани

11.04.2024    370    tango    5    

3

Ценовая власть. Второй сезон

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

В первом сезоне мы рассмотрели (с точки зрения программиста) внутренний механизм, помещающий цены в регистр "Цены". Из этого регистра цена попадает в исходящие УПД (в продажи). Но эта цена (в прайс-листе) дифференцирована (ценообразована) в разрезах свойств самой номенклатуры. Но стратегия ценообразования, ценовая власть - это в первую очередь о работе с ценами для клиента. И тут вступает в дело второй акт марлезонского, Скидки (наценки) и кешбек.

08.04.2024    569    tango    0    

2

Ценовая власть (УТ 11.5) - 2

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

В прошлый раз специальной обработкой мы выбрали объекты УТ 1.5, группируя по подсистемам. Оказалось, что состав подсистем не вполне корректно отображает функциональную структуру, но зато мы нашли процедуру, которая, вроде бы, должна содержать в себе всё, что нас интересует. Обновление цен должно ведь следовать выбранной стратегии ценообразования, верно? Иначе что она обновляет...

06.04.2024    442    tango    1    

1

Ценовая власть или Управление ценообразованием (УТ 11.5)

Ценообразование, анализ цен Механизмы типовых конфигураций Платформа 1С v8.3 Оперативный учет 1С:Управление торговлей 11 Россия Управленческий учет Абонемент ($m)

Ценовая власть - это способность (возможность) компании изменять в некоторых пределах отпускную цену своего товара (услуг, продукции). Чем в более широких пределах вы можете играть в цену продажи, тем больше этой власти у вас. Если вы не можете управлять отпускной ценой, то это или не ваш бизнес, или не бизнес вовсе. Здесь в рубрике "База знаний аналитика и руководителя проекта" слово проект не ограничено "проектом в 1С". Посмотрим, что для этого есть в УТ 11.5.

1 стартмани

05.04.2024    523    tango    12    

2

Расширяем возможности дополнительных обработок и настраиваем их отладку

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

Уже не одна веб-страница исписана знаниями о дополнительных обработках, как создать, как подключить. Есть масса вариантов, как их можно отладить. Я разобрался в кишках работы библиотеки и покажу, как можно расширить возможности дополнительных отчетов, а также покажу удобный способ отладки.

07.02.2024    2578    YA_418728146    11    

42

Регистры накопления в 1С:КА2 и 1С:ERP для расчета НДФЛ, страховых взносов и взаиморасчетов с сотрудниками на январь 2024 года. Краткое описание

Зарплата Механизмы типовых конфигураций Платформа 1С v8.3 1С:ERP Управление предприятием 2 1С:Комплексная автоматизация 2.х Россия Бухгалтерский учет НДФЛ Абонемент ($m)

Для расчета зарплаты и соответствующих налогов в конфигурациях 1С:КА2 и 1С:ERP используется 22 регистра накопления, 7 регистров сведений, 1 регистр расчета и бухгалтерские проводки. В таблице приведены названия этих регистров, указаны основные регистраторы и виды движений приход/расход. В описании приводится краткое функциональное назначение регистров в основных зарплатных процессах. Описание регистров родилось из черновиков при написании различных отчетов и обработок при эксплуатации 1С-овских конфигураций и исправлении ошибок по НДФЛ, взаиморасчетов с сотрудниками и прочих. Информация не претендует на полноценное описание работы регистров, скорее это дискуссионный материал. Но, возможно, кому-то пригодится и сократит время при подготовке отчетности за непростой (в плане учета зарплаты) 2023 год. А возможно, кто-то поделится своим опытом.

1 стартмани

10.01.2024    1126    8    2ncom    3    

8

Шаблоны новых объектов 1С для 1С:Бухгалтерии предприятия

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

Используются для создания новых объектов в конфигурации, чтобы не забыть, что нужно сделать. Сделано на примере 1С:Бухгалтерия предприятия, в других конфигурациях могут быть другие, а могут быть и похожие объекты.

28.12.2023    4953    mrXoxot    11    

100
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
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. Одинец 248 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 95 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 7861 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 372 07.02.20 16:09 Сейчас в теме
Проблема частая и в принципе хорошо что есть статья.
Плюсов мало т.к. для опытного спеца она решается за 30 мин с нуля, при условии же поиска решения через интернет прикинем:
1. зайти в браузер, набить запрос и изучить кучу ссылок - 20 мин
2. найти данную статью, прочесть ее и осмыслить - 10 мин
3. прочесть комменты и осмыслить их - 10 мин
4. внести указанные изменения (кстати, если рассчитано на начинающих, то где сказано что нужно монопольный доступ к базе? Проблема то возникает наверное не в выходные дни ночью, а в рабочее время когда народ работает в базе и дорога каждая минута - а надо печатать документы!) - 10 мин
В итоге проигрыш в 20 мин, ну это так навскидку, опыт подсказывает что может и больше выйти если на другое отвлечься.

Плюс в данной статье только то что она поднимает типовую проблему которую разные люди по разному решают и тут у каждого свой подход. И хорошо что все их описывают тут.
Я вот стараюсь все делать универсально. Ведь кроме ИНН может поменяться любой реквизит у любого объекта.
Поэтому верно тут сказал один что использует универсальный периодический регистр. Я также один раз написал -
Измерения - Объект+Имя реквизита
Ресурсы - Значение (всех возможных типов), Автор и Дата установки чтобы не было вопросов кто и когда внес изменения
+
Внимание! Тема сдана в архив