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

15.05.12

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

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

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

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

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

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

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

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

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

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

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

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

 

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

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

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

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

См. также

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

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

29400 руб.

29.06.2023    6548    17    6    

27

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

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

7200 руб.

02.08.2023    4591    18    1    

36

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

Расширение позволяет вывести в табличном документе факсимиле печати и подписей и/или вывести произвольную картинку из прикреплённых файлов организации для 1С УТ 11.5, КА 2.5, ERP 2.5, УНФ 3, Розница 3. Вывод факсимиле возможен в табличные документы УПД, УКД, Счёт-фактура, ТОРГ-12 и другие. Возможно настроить вывод для любых типовых макетов (Акт сверки, М-15, ТТН), для этого потребуется отредактировать макет и разместить на нём картинки с установленными именами. Редактирование осуществляется через типовой механизм в пользовательском интерфейсе.

3000 руб.

07.02.2023    7259    75    17    

32

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

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

21.05.2024    23948    dimanich70    81    

147

Универсальные функции Программист Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

Задача: вставить картинку из буфера обмена на форму средствами платформы 1С.

1 стартмани

18.03.2024    4414    3    John_d    11    

57

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

Пришлось помучиться с GUID-ами немного, решил поделиться опытом, мало ли кому пригодится.

12.02.2024    23602    atdonya    25    

58

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

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

30.11.2023    5938    ke.92@mail.ru    17    

65
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. mikhailv 20 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 Сейчас в теме
Спасибо! Полезная статья!)
Оставьте свое сообщение