Вывод старого юридического адреса организации при печати документов задним числом для 1С: УПП

15.05.12

Задачи пользователя - Адаптация типовых решений

Иногда возникает необходимость с определенной даты во всех печатных формах выводить новые реквизиты организации. Сделать это элементарно, просто меняем реквизиты организации в справочнике. Но что делать, когда бухгалтерия настаивает, чтобы до определенной даты печатные формы ВСЕХ ПЕРВИЧНЫХ ДОКУМЕНТОВ содержали старые реквизиты, а начиная с конкретной даты - новые?

Казалось бы, тривиальная проблема... В условиях российского бизнеса многие организации меняли свой юридический адрес, и не один раз. Но почему-то 1С в этой ситуации не предлагает никакого другого выхода, кроме как создание внешних печатных форм со старым адресом для печати документов задним числом. Это неудобно как минимум по 2 причинам:

1. Первичных документов много, для каждого делать отдельную печатную форму очень лениво.

2. Есть потенциальная вероятность того, что какие-либо реквизиты метаданных документа поменяются с выходом очередного релиза,  и тогда придется переделывать в том числе и созданные внешние печатные формы, опять таки это не по фэн-шую.

Как бы сделать по-удобнее?

Решение достаточно простое. Знаете наверно про регистр сведений "Ответственные лица организации". Правильно, он периодический и с ним никаких проблем не возникает, с определенной даты можно в печатные формы выводить нужное ответственное лицо. Так что помешало 1С сделать то же самое, например, для регистра "Контактная информация", содержащего в частности юридический адрес организации? Но не сделали.... видимо, посчитали, что это достаточно редкая ситуация, чтобы ее автоматизировать.

У меня такая ситуация возникла, бухгалтерия поставила задачу сделать так, чтобы до определенной даты все документы печатались со старым юридическим адресом, а после этой даты - с новым. Делать внешние печатные формы ко всем документам мне было лень, в итоге, что я сделал:

в Общем модуле УправлениеКонтактнойИнформацией внутри функции СведенияОЮрФизЛице() перед строкой

Возврат Сведения;

добавил строку

Сведения = МойДополнительныйМодуль.СведенияОЮрФизЛицеДополненные(Сведения, ЮрФизЛицо, ДатаПериода);

 

Внутри добавленного в конфигурацию общего модуля МойДополнительныйМодуль прописал следующую функцию: 

// Функция используется для замены в печатных формах юридического адреса нашей организации 
// на старый юридический адрес для документов, распечатываемых задним числом до 10 мая 2012 года

Функция СведенияОЮрФизЛицеДополненные(Сведения, ЮрФизЛицо, ДатаПериода) Экспорт
 
 Если ДатаПериода >= Дата(2012, 05, 10) Тогда
     // печатаем актуальные на текущий момент сведения
     Возврат Сведения;
 КонецЕсли;
 
  // если это более ранний документ, тогда заменяем юридический адрес организации
 Если ТипЗнч(ЮрФизЛицо) = Тип("СправочникСсылка.Организации") Тогда
     ЮридическийАдресДляЗамены = Неопределено;
     Если Сведения.Свойство("ЮридическийАдрес", ЮридическийАдресДляЗамены) Тогда
          Сведения.Вставить("ЮридическийАдрес", "Тут пишем строку со старым юридическим адресом организации");
     КонецЕсли;
 КонецЕсли;
 
 Возврат Сведения;
 
КонецФункции

Вот собственно и вся хитрость. Можно сделать универсальнее: ввести свой периодический регистр сведений для хранения контактной информации и забить старый адрес туда, соответствующим образом переделав и указанную выше функцию. Но мне кажется, чем проще и быстрее можно выполнить какую-то задачу, тем лучше, т.к. можно переключиться на решение других более интересных и актуальных задач.

См. также

Табличная часть в доп. реквизитах и формирование таблиц в шаблоне docx для 1С:ДО 3.0

Адаптация типовых решений Платформа 1С v8.3 1С:Документооборот Россия Платные (руб)

Расширение конфигурации для «1С:Документооборот КОРП», редакция 3.0. позволяет: 1.использовать произвольные табличные части в качестве дополнительных реквизитов к документу; 2 использовать произвольные табличные части в шаблонах в формате docx для автоматического заполнения таблиц.

29400 руб.

29.06.2023    4453    9    4    

18

Расширение для 1С:УНФ. Автоматическое снятие резервов в Заказах покупателей

Логистика, склад и ТМЦ Адаптация типовых решений Платформа 1С v8.3 1С:Управление нашей фирмой 1.6 1С:Управление нашей фирмой 3.0 Россия Управленческий учет Платные (руб)

Чтобы не допустить путаницы с обещаниями клиентам и для четкого контроля исполнения заказов мы используем резервирование товаров. Мы доработали УНФ, чтобы она автоматически отменяла старые резервы и не мешала эффективно продавать.

7200 руб.

02.08.2023    2956    4    0    

19

Переоткрытие внешних обработок

Универсальные функции Платформа 1С v8.3 Бесплатно (free)

На заключительных этапах, когда идет отладка или доработка интерфейса, необходимо много раз переоткрыть внешний объект. Вот один из способов автоматизации этого.

30.11.2023    3961    ke.92@mail.ru    16    

61

Валидация JSON через XDTO (включая массивы)

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

При работе с интеграциями рано или поздно придется столкнуться с получением JSON файлов. И, конечно же, жизнь заставит проверять файлы перед тем, как записывать данные в БД.

28.08.2023    8822    YA_418728146    6    

141
Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. mikhailv 19 16.05.12 11:45 Сейчас в теме
Вцелом, хоть что-то. Но не хватает универсальности: изменяться может не только юр.адрес, но и другие адреса, телефоны, наименование наконец. И как у организации, так и у контрагентов.
Можно, например, так еще сделать. Перед изменением делать "архивную копию" организации: копируем элемент справочника и в наименовании пишем "до дд.мм.гггг". Добавляем РСВ периодический. Измерение "Организация", ресурс "организация для печати". Соотв., после изменения реквизитов регистр будет выглядеть так:

01.01.0001 "Рога и копыта" "РиК до 01.05.2012"
01.05.2012 "Рога и копыта" "Рога и копыта"

Соответственно, в общем модуле не вручную будем дописывать каждый раз, а один раз подмену организуем:) Типа

Функция СведенияОЮрФизЛице(ЮрФизЛицо, ДатаПериода, ДляФизЛицаТолькоИнициалы = Истина, БанковскийСчет = Неопределено) Экспорт

	Сведения = Новый Структура("Представление, ПолноеНаименование, КодПоОКПО, ИНН, КПП, Телефоны, ЮридическийАдрес, Банк, БИК, КоррСчет, НомерСчета, АдресБанка");
	Запрос   = Новый Запрос;
	Данные   = Неопределено;

	Если НЕ ЗначениеЗаполнено(ЮрФизЛицо) Тогда
		Возврат Сведения;
	ИначеЕсли ТипЗнч(ЮрФизЛицо) = Тип("Строка") Тогда
		Сведения.Вставить("Представление",      ЮрФизЛицо);
		Сведения.Вставить("полноеНаименование", ЮрФизЛицо);
		Возврат Сведения;
	КонецЕсли;

	Если БанковскийСчет = Неопределено ИЛИ БанковскийСчет.Пустая() Тогда
		ТекБанковскийСчет = ЮрФизЛицо.ОсновнойБанковскийСчет;
	Иначе
		ТекБанковскийСчет = БанковскийСчет;
	КонецЕсли;
	//new+
	Срез = РегистрыСведений.СтарыеЗначенияРеквизитов.ПолучитьПоследнее(ДатаПериода, Новый Структура("ЮрФизЛицо", ЮрФизЛицо));
 
	Если Не Срез.ЮрФизЛицоДляПечати.ПустаяСсылка() Тогда
		ЮрФизЛицо = Срез.ЮрФизЛицоДляПечати;
	КонецЕсли;
	//new-
	// Выберем основные сведения о контрагенте и банковском счете
	Если ТекБанковскийСчет.БанкДляРасчетов.Пустая() Тогда
		ИмяРеквизитаБанка = "Банк";
	Иначе
		ИмяРеквизитаБанка = "БанкДляРасчетов";
	КонецЕсли;

...
Показать


Универсально: для организации и для контрагентов
2. w22u 30 12.08.12 23:09 Сейчас в теме
(1) Miffka, Теперь понятно, из - за какой организации, налоговая начала требовать краткое и полное название в сф )))
3. Linda1C 19.02.14 11:12 Сейчас в теме
Спасибо! Полезная статья!)
Оставьте свое сообщение