Форум OlegON > Программы и оборудование для автоматизации торговли > Системы автоматизации торговли > Бэк-офисы платформы 1С

Справочники Контрагенты, ЮрЛица, ФизЛица в "Торговля и склад 7.7" : Бэк-офисы платформы 1С

19.04.2024 9:20


15.02.2016 20:39
MWWRuza
 
Конфа "ККС-Магазин" на базе "Торговля и склад 7.7". Справочник Контрагенты не содержит в себе большинства нужных реквизитов. Есть один реквизит - ЮрФизЛицо, типа "Справочник"(неопределенного вида), в который записывается ссылка на элемент справочника ЮрЛица или ФизЛица, в зависимости от вида контрагента... Справочник ЮрЛица НЕ ПОДЧИНЕН справочнику Контрагенты!!! Пока небыло ЕГАИС, все всех устраивало, а теперь, из ЕГАИСа прилетают накладные, контрагенты которых имеют обособки, со своими КПП и ФСРАР_ID... И как с этим бороться? Получается, к одному контрагенту нужно привязать несколько ЮрЛиц... Как? У контрагента только один реквизит ЮрФизЛицо, в который можно записать ЮрЛицо, одно! Если завести несколько ЮрЛиц с разными КПП и ФСРАР_ID, то как в этом случае установить связь "многих к одному" - ??? Был бы справочник подчинен, все было бы просто, по атрибуту "Владелец"... А как тут, вообще не понимаю...
Вопрос - если всетаки подчинить справочник ЮрЛица справочнику Контрагенты??? Какие могут быть тут "подводные камни"? (Нет, то, что нельзя подчинить справочник с имеющимися элементами, я понимаю, и это меня не пугает - напишу обработку выгрузки, удаления элементов справочника и загрузки с принудительной установкой владельца, это не проблема)...
Вот почему так "не по человечески" в типовых сделано? Чем это, если я всетаки переделаю, грозит в дальнейшем?

PS Ни какие аргументы про поддержку и обновления, не интересуют - конфа давно брошена авторами, с типовой ТиС имеет только общие корни(и косяки!)и поддерживается исключительно своими(моими) силами...
15.02.2016 21:34
KirillHome
 
Посмотреть, как сделано в УТ 11?
Там, на сколько помню, есть справочник партнёры и справочник контрагенты.
Контрагенты - это именно юр.лица (для бухгалтерского учёта).
Партнёры - это, скорее, управленческий.
И у одного партнёра может быть несколько контрагентов.




Или я не о том?
15.02.2016 22:12
MWWRuza
 
Да в принципе, о том... Только реализация в восьмерке, это немного не то, что в 7.7... Там, я думаю это через регистр сведений решается, в 7.7 такого объекта нет, связать нечем...

Вот, "на кошках тренируюсь"... Смоделировал ситуацию в пустой базе ТиС... Вроде работает:

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

Код:
Функция ПоКнопкеОткрытьСправочник(Справочник, Знач Параметр, Знач Объект=0)
	
	Если ПустоеЗначение(Параметр) = 1 Тогда
		Предупреждение("Элемент еще не записан. Справочник не может быть открыт!", 60);
		Возврат ПолучитьПустоеЗначение();
	ИначеЕсли Справочник = "ЛицензииПоставщиковАлкогольнойПродукции" Тогда
	
		КонтекстФормы = "";
		ОткрытьФорму("Справочник.ЛицензииПоставщиковАлкогольнойПродукции", КонтекстФормы);
		КонтекстФормы.ИспользоватьВладельца(ТекущийЭлемент());
	
	ИначеЕсли Справочник = "ЮрЛица" Тогда                      // Влад
	                                                           //
		КонтекстФормы = "";                                    //
		ОткрытьФорму("Справочник.ЮрЛица", КонтекстФормы);      //
		КонтекстФормы.ИспользоватьВладельца(ТекущийЭлемент()); //*****		
	Иначе
Вот, только вопрос, дальше где-то в документах и отчетах вылезет необходимость доработки или нет...
16.02.2016 01:47
MWWRuza
 
Написал обработку, и преобразовал одну из рабочих баз(пока копию, естественно). Всесторонне помучал, проблем не нашел... Да их в принципе и не должно возникнуть, в типовых механизмах конфигурации, обращение со стороны спр. Контрагенты к справочнику "ЮрЛица" идет по реквизиту ЮрФизЛицо - он на месте, какая разница, подчиненный справочник или нет? Со стороны справочника ЮрЛица, к справочнику "хозяину" идет поиском "НайтиПоРеквизиту("ЮрФизЛицо",Спр.ТекущийЭлемент(),1)". Оно как работало, так и будет работать, не важно, что этот элемент справочника Контрагенты теперь не какой-то абстрактный "хозяин", а его владелец. Зато теперь добавилась возможность искать Контрагента по атрибуту "Владелец", из любого подчиненного владельцу элемента(ЮрЛицо). Это развызывает руки в возможности использовать несколько обособок одного контрагента с разными КПП и ФСРАР_ID. Не знаю, почему сама 1С изначально так не сделала, так-же правильнее...
Может кому пригодится, вот: ПреобразоватьЮрЛиц для типовой ТиС и конфигураций на ее базе.
Но, только сразу предупреждаю - ДЛЯ ТЕХ, КТО ПОНИМАЕТ, ЧТО ЭТО ТАКОЕ! На свой страх и риск, Прежде чем что-то делать, сохраняйте копию.
Порядок действий такой:
Шаг 1. Выгружаем справочник ЮрЛица в файл. На диске С: должна быть доступная для записи папка TEMP(кнопка "Выгрузить").
Шаг 2. Очищаем ссылки на этот справочник из справочника Контрагенты(Кнопка "Очистить").
Шаг 3. Удаляем сам справочник, просто удалив дбф-ку с цд-иксом, имя файла можно посмортеть в файле с расширением .DD. Естественно, это надо делать при закрытой программе. Запускаем программу(файлы создаются сами, пустые), и убеждаемся, что ЮрЛица пропали вместе с ИНН и всеми остальными реквизитами.
Шаг 4. Подчиняем справочник ЮрЛица справочнику Контрагенты. Добавляем в модуль формы справочника контрагенты строки, как в предыдущем сообщении. Сохраняем конфигурацию.
Шаг 5. Загружаем справочник обратно из файла(он должен лежать в папке C:\TEMP\ куда был выгружен)(Кнопка "Загрузить").

Собственно и все. Получаем справочник ЮрЛица, подчиненный справочнику Контрагенты...
Часовой пояс GMT +3, время: 09:20.

Форум на базе vBulletin®
Copyright © Jelsoft Enterprises Ltd.
В случае заимствования информации гипертекстовая индексируемая ссылка на Форум обязательна.