Казалось бы, тривиальная проблема… В условиях российского бизнеса многие организации меняли свой юридический адрес, и не один раз. Но почему-то 1С в этой ситуации не предлагает никакого другого выхода, кроме как создание внешних печатных форм со старым адресом для печати документов задним числом. Это неудобно как минимум по 2 причинам:
1. Первичных документов много, для каждого делать отдельную печатную форму очень лениво.
2. Есть потенциальная вероятность того, что какие-либо реквизиты метаданных документа поменяются с выходом очередного релиза, и тогда придется переделывать в том числе и созданные внешние печатные формы, опять таки это не по фэн-шую.
Как бы сделать по-удобнее?
Решение достаточно простое. Знаете наверно про регистр сведений «Ответственные лица организации». Правильно, он периодический и с ним никаких проблем не возникает, с определенной даты можно в печатные формы выводить нужное ответственное лицо. Так что помешало 1С сделать то же самое, например, для регистра «Контактная информация», содержащего в частности юридический адрес организации? Но не сделали…. видимо, посчитали, что это достаточно редкая ситуация, чтобы ее автоматизировать.
У меня такая ситуация возникла, бухгалтерия поставила задачу сделать так, чтобы до определенной даты все документы печатались со старым юридическим адресом, а после этой даты — с новым. Делать внешние печатные формы ко всем документам мне было лень, в итоге, что я сделал:
в Общем модуле УправлениеКонтактнойИнформацией внутри функции СведенияОЮрФизЛице() перед строкой
Возврат Сведения;
добавил строку
Сведения = МойДополнительныйМодуль.СведенияОЮрФизЛицеДополненные(Сведения, ЮрФизЛицо, ДатаПериода);
Внутри добавленного в конфигурацию общего модуля МойДополнительныйМодуль прописал следующую функцию:
// Функция используется для замены в печатных формах юридического адреса нашей организации
// на старый юридический адрес для документов, распечатываемых задним числом до 10 мая 2012 года
Функция СведенияОЮрФизЛицеДополненные(Сведения, ЮрФизЛицо, ДатаПериода) Экспорт
Если ДатаПериода >= Дата(2012, 05, 10) Тогда
// печатаем актуальные на текущий момент сведения
Возврат Сведения;
КонецЕсли;
// если это более ранний документ, тогда заменяем юридический адрес организации
Если ТипЗнч(ЮрФизЛицо) = Тип("СправочникСсылка.Организации") Тогда
ЮридическийАдресДляЗамены = Неопределено;
Если Сведения.Свойство("ЮридическийАдрес", ЮридическийАдресДляЗамены) Тогда
Сведения.Вставить("ЮридическийАдрес", "Тут пишем строку со старым юридическим адресом организации");
КонецЕсли;
КонецЕсли;
Возврат Сведения;
КонецФункции
Вот собственно и вся хитрость. Можно сделать универсальнее: ввести свой периодический регистр сведений для хранения контактной информации и забить старый адрес туда, соответвующим образом переделав и указанную выше функцию. Но мне кажется, чем проще и быстрее можно выполнить какую-то задачу, тем лучше, т.к. можно переключиться на решение других более интересных и актуальных задач.
Вцелом, хоть что-то. Но не хватает универсальности: изменяться может не только юр.адрес, но и другие адреса, телефоны, наименование наконец. И как у организации, так и у контрагентов.
Можно, например, так еще сделать. Перед изменением делать «архивную копию» организации: копируем элемент справочника и в наименовании пишем «до дд.мм.гггг». Добавляем РСВ периодический. Измерение «Организация», ресурс «организация для печати». Соотв., после изменения реквизитов регистр будет выглядеть так:
01.01.0001 «Рога и копыта» «РиК до 01.05.2012»
01.05.2012 «Рога и копыта» «Рога и копыта»
Соответственно, в общем модуле не вручную будем дописывать каждый раз, а один раз подмену организуем:) Типа
Показать
Универсально: для организации и для контрагентов
(1) Miffka, Теперь понятно, из — за какой организации, налоговая начала требовать краткое и полное название в сф )))
Спасибо! Полезная статья!)