Разработка #5279
закрытоПолучитьПлощадкиПоХозсубъекту по двум!!! реквизитам.
0%
Описание
Доработать "Меркурий_ГлобальныйМодуль2.ert".
В частности Функция ПолучитьПлощадкиПоХозсубъекту(ХС)
Заменить
СпрПл = СоздатьОбъект("Справочник.ВСД_Площадка");
Если СпрПл.НайтиПоРеквизиту("GUID",СокрЛП(guid),1) = 0 Тогда
...
на поиск Площадки по двум реквизитам "GUID" и "GuidХозСубъекта"
СпрПлощадка = sНайтиПлощадкуПоРеквизитам(СокрЛП(guid),СокрЛП(ХС.guid),ЕстьОшибка); //[+]serpent, 13.09.2023
Для чего?
Есть Контрагенты(ХС) которые имеют одинаковые GUIDы площадок(оптимизируют налоги).
Т.Е. Жена оформила ИП зарегистрировала площадку. Потом Муж оформил ИП и в Ветиси ПРИСОЕДИНИЛ к своему ИП(ХС) ТУЖЕ площадку как и у ЖЕНЫ.
Получается, когда загружаем площадки по ХС, по коду в 1С находится площадка по GUID и в ней переписывается GuidХозСубъекта на новый.
С первого ХС пропала точка и появилась у второго ХС.
А когда у этих ИПэшников 15-20 лотков(площадок) получаем треш в справочнике.
Искать площадку надо по двум реквизитам.
Обновлено кб99 Филипп около 2 лет назад
Тогда будут дубли площадок, точнее 15-20 одинаковых площадок.
Обновлено кб99 Филипп около 2 лет назад
Можете прислать функцию sНайтиПлощадкуПоРеквизитам ?
Обновлено Pentyukhov Sergey около 2 лет назад
А оно так и есть в МЕРКУРИИ ХС разные, а GUID площадок ОДИНАКОВЫЙ, Названия только разные.
Они(ХС) не заморачиваются. Сейчас найду для примера.
GUID 56f7baf9-253a-4dce-bc5d-608db9703aaf площадка их ТРИ шт и каждая от разных ИП
ИНН 503500238709 Шипарев, предположим новый контрагент. Делаем ПолучитьПлощадки... получаем, перебираем полученные и о Чудо по GUID 56f7baf9-253a-4dce-bc5d-608db9703aaf
в 1С находим уже занесенную площадку по контрагенту Парт ИНН 5035024393. Соответственно с "Парт" площадка переписывается на "Шипарева"
Обновлено Pentyukhov Sergey около 2 лет назад
· Изменено
Она у меня под 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НайтиПлощадкуПоРеквизитам
Обновлено Pentyukhov Sergey около 2 лет назад
· Изменено
Состояние("Загрузка Площадок По "+ХС);
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);
КонецПопытки;
КонецЦикла;
Обновлено кб99 Филипп около 2 лет назад
- Параметр Проект изменился с 114 на 1Cv7 ВСД в ГИС Меркурий
- Параметр Статус изменился с Новая на Тестирование
Обновлено кб99 Филипп около 2 лет назад
- Параметр Статус изменился с Тестирование на Завершена