Разработка #5279
ПолучитьПлощадкиПоХозсубъекту по двум!!! реквизитам.
0%
Описание
Доработать "Меркурий_ГлобальныйМодуль2.ert".
В частности Функция ПолучитьПлощадкиПоХозсубъекту(ХС)
Заменить
СпрПл = СоздатьОбъект("Справочник.ВСД_Площадка"); Если СпрПл.НайтиПоРеквизиту("GUID",СокрЛП(guid),1) = 0 Тогда ...
на поиск Площадки по двум реквизитам "GUID" и "GuidХозСубъекта"
СпрПлощадка = sНайтиПлощадкуПоРеквизитам(СокрЛП(guid),СокрЛП(ХС.guid),ЕстьОшибка); //[+]serpent, 13.09.2023
Для чего?
Есть Контрагенты(ХС) которые имеют одинаковые GUIDы площадок(оптимизируют налоги).
Т.Е. Жена оформила ИП зарегистрировала площадку. Потом Муж оформил ИП и в Ветиси ПРИСОЕДИНИЛ к своему ИП(ХС) ТУЖЕ площадку как и у ЖЕНЫ.
Получается, когда загружаем площадки по ХС, по коду в 1С находится площадка по GUID и в ней переписывается GuidХозСубъекта на новый.
С первого ХС пропала точка и появилась у второго ХС.
А когда у этих ИПэшников 15-20 лотков(площадок) получаем треш в справочнике.
Искать площадку надо по двум реквизитам.
Связанные редакции
Редакция 3a25babd
(Разница(diff))
ПолучитьПлощадкиПоХозсубъекту по двум!!! реквизитам. refs #5279
История
#1 Обновлено кб99 Синявский Филипп больше 1 года назад
Тогда будут дубли площадок, точнее 15-20 одинаковых площадок.
#2 Обновлено кб99 Синявский Филипп больше 1 года назад
Можете прислать функцию sНайтиПлощадкуПоРеквизитам ?
#3 Обновлено Pentyukhov Sergey больше 1 года назад
А оно так и есть в МЕРКУРИИ ХС разные, а GUID площадок ОДИНАКОВЫЙ, Названия только разные.
Они(ХС) не заморачиваются. Сейчас найду для примера.
GUID 56f7baf9-253a-4dce-bc5d-608db9703aaf площадка их ТРИ шт и каждая от разных ИП
ИНН 503500238709 Шипарев, предположим новый контрагент. Делаем ПолучитьПлощадки... получаем, перебираем полученные и о Чудо по GUID 56f7baf9-253a-4dce-bc5d-608db9703aaf
в 1С находим уже занесенную площадку по контрагенту Парт ИНН 5035024393. Соответственно с "Парт" площадка переписывается на "Шипарева"
#4 Обновлено Pentyukhov Sergey больше 1 года назад
Она у меня под ToySQL
//====================================================================== //Поиск площадки по GUID(площадки) и GUID(GuidХозСубъекта) //[+]serpent, 13.09.2023 Функция sНайтиПлощадкуПоРеквизитам(GUID_Пл, GUID_Хс,ЕстьОшибка) ТЗ_сДанными = СоздатьОбъект("ТаблицаЗначений"); ЗапросSQL = СоздатьОбъект("ToyQuery"); ЗапросSQL.Соединиться(0); ЗапросSQL.Вернуть1С = 1; ТекстЗапросаSQL = " |SELECT | ТекЗначение = [ТекСпр.Ссылка] |FROM | [Справочник.ВСД_Площадка] ТекСпр WITH (NOLOCK) |WHERE | [ТекСпр.GUID] = [@GUID_Пл] AND [ТекСпр.GuidХозСубъекта] = [@GUID_Хс] |"; Состояние("Выполнение запроса SQL#..."); Если ЗапросSQL.МетаЗапрос(ТекстЗапросаSQL,1)=0 Тогда Сообщить(ТекстЗапросаSQL); Сообщить(ЗапросSQL.Разбор(ТекстЗапросаSQL)); Сообщить(ЗапросSQL.Ошибка); //Предупреждение("Ошибка! Запрос не выполнен!"); ЕстьОшибка = 1; СтатусВозврата(0); Возврат ПолучитьПустоеЗначение("Справочник.ВСД_Площадка"); КонецЕсли; Если ЗапросSQL.Следующая() = 1 Тогда ТекЗн = ЗапросSQL.ТекЗначение; Иначе ТекЗн = ПолучитьПустоеЗначение("Справочник.ВСД_Площадка") КонецЕсли; ЗапросSQL.Закрыть(); Возврат ТекЗн; КонецФункции // sНайтиПлощадкуПоРеквизитам
#5 Обновлено Pentyukhov Sergey больше 1 года назад
Состояние("Загрузка Площадок По "+ХС); activityLocationList = objDom.selectNodes("//dt:location") ; Для i1 = 0 По activityLocationList.length - 1 Цикл Сообщить(i1,"I"); //[+]serpent, 13.09.2023 activityLocation=activityLocationList.item(i1); enterprise = activityLocation.selectSingleNode("dt:enterprise"); Попытка guid = enterprise.selectSingleNode("bs:guid").text; name = enterprise.selectSingleNode("dt:name").text; //Если СпрПл.НайтиПоРеквизиту("GUID",СокрЛП(guid),1) = 0 Тогда //[-]serpent, 13.09.2023 ЕстьОшибка = 0; СпрПлощадка = sНайтиПлощадкуПоРеквизитам(СокрЛП(guid),СокрЛП(ХС.guid),ЕстьОшибка); //[+]serpent, 13.09.2023 Если ЕстьОшибка = 1 Тогда Иначе Если ПустоеЗначение(СпрПлощадка)=1 Тогда СпрПл = СоздатьОбъект("Справочник.ВСД_Площадка"); СпрПл.Новый(); СпрПл.Наименование = name; СпрПл.УстановитьНовыйКод("00"); СпрПл.Записать(); Сообщить("Создали новую Площадку: "+name,"I"); //[+]serpent, 14.09.2023 ВыбОбъект = СпрПл.ТекущийЭлемент(); Иначе ВыбОбъект = СпрПлощадка.ТекущийЭлемент(); КонецЕсли; Площадка_ЗагрузитьПоGUID(ВыбОбъект, guid, ХС); КонецЕсли; Исключение Сообщить("Не удалось получить GUID площадки из файла "+ГМ.Компонента.LogFilename); КонецПопытки; КонецЦикла;
#6 Обновлено кб99 Синявский Филипп больше 1 года назад
- Параметр Проект изменился с Sergey serpent1C на 1Cv7 ВСД в ГИС Меркурий
- Параметр Статус изменился с Новая на Тестирование
#7 Обновлено кб99 Синявский Филипп около 1 года назад
- Параметр Статус изменился с Тестирование на Завершена
ПолучитьПлощадкиПоХозсубъекту по двум!!! реквизитам. refs #5279