arefaste/1C_Forums huggingface dataset:
Есть файл xdto при чтении которого вылезает ошибка "поле объекта не обнаружено", понимаю, что что при чтении свойств, некоторые из них пустые. Вопрос как обойти это значения? Или как вставить вместо них новые?
---
```1c
    Если поле = неопределено тогда
    иначе
    твой код
    КонецЕсли;
```
---
Если не знаем каие свойства у объекта нужно обойти их в цикле:

```1c
    Для Каждого Свойство Из ОбъектXDTO.Свойства() Цикл
    Сообщить("Имя свойства"+Свойство.Имя);
    Сообщить("Значение свойства"+ОбъектXDTO[Свойство.Имя]);
    Сообщить("Тип значения свойства"+ТипЗнч(ОбъектXDTO[Свойство.Имя]));
    КонецЦикла;
```

Если знаем какие свойства есть то можем просто проверить на их наличие :

```1c
    Если ОбъектXDTO.Свойство("ИмяСвойства") Тогда
    ....
    КонецЕсли;
```
---
у объекта xdto есть метод найти? можно через него попробовать. Или в попытке
---
```1c
    Если поле = неопределено тогда
    иначе
    твой код
    КонецЕсли;
```
---
А если неопределенно, что делать? Мне именно надо понять, что делать, если свойство не определено у объекта. Иначе он ошибку выдает или же пропускает в цикле строку.
---
Если не знаем каие свойства у объекта нужно обойти их в цикле:

```1c
    Для Каждого Свойство Из ОбъектXDTO.Свойства() Цикл
    Сообщить("Имя свойства"+Свойство.Имя);
    Сообщить("Значение свойства"+ОбъектXDTO[Свойство.Имя]);
    Сообщить("Тип значения свойства"+ТипЗнч(ОбъектXDTO[Свойство.Имя]));
    КонецЦикла;
```

Если знаем какие свойства есть то можем просто проверить на их наличие :

```1c
    Если ОбъектXDTO.Свойство("ИмяСвойства") Тогда
    ....
    КонецЕсли;
```
---
У моих объектовXDTO не было свойства Свойство(). Нашёл другой вариант через отдельную функцию. Но всё равно слишком муторно, когда полей, которых может не быть, штук 10, притом комбинации наличия бывают разными.

```1c
    &НаСервере
    Функция ПеременнаяСодержитСвойство(Переменная, ИмяСвойства) Экспорт
    // Инициализируем структуру для теста с ключом (значение переменной "ИмяСвойства") и значением NULL
    СтруктураПроверка = Новый Структура;
    СтруктураПроверка.Вставить(ИмяСвойства, NULL);
    // Заполняем созданную структуру из переданного значения переменной
    ЗаполнитьЗначенияСвойств(СтруктураПроверка, Переменная);
    // Если значение для свойства структуры осталось NULL, то искомое свойство не найдено, и наоборот.
    Если СтруктураПроверка[ИмяСвойства]= NULL Тогда
    Возврат Ложь;
    Иначе
    Возврат Истина;
    КонецЕсли;
    КонецФункции
```
---
```1c
    Если ОбъектXDTO.Свойства().Получить(ИмяСвойства) = Неопределено Тогда
    Возврат Ложь;
    КонецЕсли;

    Возврат Истина;
```
В печатную форму (через макеты печатных форм) добавляю свой текст и параметр. Текст выводится, но параметр почему-то не заполняется. В чем может быть причина?
Розница 2.3
---
Текст выводится, но параметр почему-то не заполняется. В чем может быть причина? - наверное потому что его нет в качестве "ОбъектаПечати"
---
Текст выводится, но параметр почему-то не заполняется. В чем может быть причина? - наверное потому что его нет в качестве "ОбъектаПечати"
Загружаю конфигурацию более новой версии, сравниваю - изменений в регистре бухгалтерии, плане счетов и плане видов характеристик "Виды субконто типовые" нету. Но при записи начинается многочасовая реструктуризация. В чем может быть причина? Как посмотреть, что инициировало реструктуризацию?
Конфигурация дописанная.
---
Благодаря статье https://infostart.ru/1c/articles/889234/ нашел причину. Изменен состав регистраторов регистра
---
Благодаря статье https://infostart.ru/1c/articles/889234/ нашел причину. Изменен состав регистраторов регистра
Здравствуйте.
Есть два XDTO пакета. У них пространство имен по умолчанию при экспорте схемы разное
http://Servicres.local/Object01
http://Servicres.local/Object02

Но web-сервис будет один, где будут использоваться пакеты

Скажите, нужно переименовать пространство имен, чтобы оно было одинаковое для веб-сервиса и двух пакетов ?
Или можно у веб-сервиса например сделать пространство имен: http://Servicres.local/
Или это так не работает ?
---
Такой возможности иногда может не быть :) Рано или поздно столкнетесь. Ничего там сложного нет.
---
Или это так не работает ?Как-то Вы сложно, дядя Федор, бутерброд едите. У вас он из масла или хлеба, но не все вместе, а в веб-сервисе можно пакетов сколько угодно добавить. Так что добавляйте оба пакета.

А вообще, XDTO может наследовать пакеты от базового XDTO-типа. Так сделано, например, в документообороте, где почти все объектные типы унаследованы от DMObject, DMRequest, DMMessage и DMResponce (если память не подводит). В единственном методе единственной функции сервиса указан один параметр базового типа, в который уже упаковано что угодно. Дальше куча Если-ИначеЕсли-... - берите пример!

ЗЫ: Ну и не слушайте тех, кто топит за HTTP. Да, они хороши, но сложнее в реализации, жрут лицухи, которые потом висят, местами глючат.
---
С веб-сервисами разобрался. Просто использовался подход - один метод - один веб-сервис. Поэтому схема не лежала вся в одном месте. И это правильно для 1С с ее багами.
---
если есть возможность отказаться от soap отказывайтесь и разработайте Http-сервис (post, get)
там в json формате гораздо легче и понятнее
---
Такой возможности иногда может не быть :) Рано или поздно столкнетесь. Ничего там сложного нет.
Коллеги, пните куда рыть: в консоли отчетов подгрузил схему и настройки - выводит данные.
А на форме в дин. списке, с которого "снимал" схему и настройки - пусто.
См. скрин.
---
(3) каким образом, в данном случае ? см. скрин - я выгребаю в ПриОткрытииПосле, методом ПолучитьИсполняемыеНастройкиКомпоновкиДанных() - гарантированно именно то, что и есть после применения пользовательских настроек. И параметры, конечно же, одни.

Я один важный нюанс не упомянул. Который, в общем-то, и оказался граблей, спрятанной в платформе.
У меня в ДС есть временная таблица. Вроде бы и ладно - платформа 8.3.18, давно уже можно юзать ВТ в ДС; а еще в ней есть параметр. Этот параметр - в отладчике видно - прекрасно устанавливается. В xml с настройками тоже его видно.

А в консоли его нет! Правда, при этом консоль-то выдает данные правильно - т.е., учитывает его... Но вот дин. списку что-то не понравилось - он тупо проигнорировал содержимое моей ВТ.

Короче, вывод: коллеги, берегитесь ВТ с параметрами в ДС!
---
Часто пользовательские настройки применяются. Проверьте под другим пользователем, можно создать нового для этой цели.
---
Параметры разные наверное.
---
(3) каким образом, в данном случае ? см. скрин - я выгребаю в ПриОткрытииПосле, методом ПолучитьИсполняемыеНастройкиКомпоновкиДанных() - гарантированно именно то, что и есть после применения пользовательских настроек. И параметры, конечно же, одни.

Я один важный нюанс не упомянул. Который, в общем-то, и оказался граблей, спрятанной в платформе.
У меня в ДС есть временная таблица. Вроде бы и ладно - платформа 8.3.18, давно уже можно юзать ВТ в ДС; а еще в ней есть параметр. Этот параметр - в отладчике видно - прекрасно устанавливается. В xml с настройками тоже его видно.

А в консоли его нет! Правда, при этом консоль-то выдает данные правильно - т.е., учитывает его... Но вот дин. списку что-то не понравилось - он тупо проигнорировал содержимое моей ВТ.

Короче, вывод: коллеги, берегитесь ВТ с параметрами в ДС!
Здравствуйте! подскажите пожалуйста как можно отсортировать только по дате

```1c
    ДатыЗагрузки = Новый ТаблицаЗначений;
    ДатыЗагрузки.Колонки.Добавить("ДатаЗагрузкТЕСТ");
    Для Каждого Строка Из СсылкаНаОбъект.ДокументыОснования Цикл
    НоваяСтрока = ДатыЗагрузки.Добавить();
    НоваяСтрока.ДатаЗагрузкТЕСТ= Строка.ТН.ДатаЗагрузки;
    КонецЦикла;

    ДатыЗагрузки.Сортировать("ДатаЗагрузкТЕСТ Убыв");
    МаксимальнаяДатаЗагрузки = ДатыЗагрузки[0].ДатаЗагрузкТЕСТ;

    ДатыЗагрузки.Сортировать("ДатаЗагрузки Возр");
    МинимальнаяДатаЗагрузки = ДатыЗагрузки[0].ДатаЗагрузкТЕСТ;
```

В таком случаи у меня ошибка выходит
А если добавить

```1c
    Сравнение = Новый СравнениеЗначений;
    ДатыЗагрузки.Сортировать("ДатаЗагрузки Убыв", Сравнение);
```

Тогда работает, можно без сравнения сделать?
---
```1c
    тз = СсылкаНаОбъект.ДокументыОснования.Выгрузить();
    тз.Свернуть("ТН");
    Запрос = Новый Запрос("Выбрать тз.тн поМестить вт из &тз как тз; выбрать максимум(тн.ДатаЗагрузки) КАК МаксимальнаяДатаЗагрузки , минимум(тн.ДатаЗагрузки) КАК МинимальнаяДатаЗагрузки из вт");
    Запрос.УстановитьПараметр("тз",тз);
    рез = Запрос.Выполнить().Выбрать();
```

ну, как-то так
---
Особенности сортировки в таблице значений

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

Поэтому рекомендуется:

    В тех случаях, когда требуется сортировка по наименованию – сразу, на этапе заполнения, добавлять в таблицу дополнительные колонки с представлениями, и сортировку выполнять уже по ним. Если, конечно, это не вызовет аналогичных многократных обращений к информационной базе;
    В остальных случаях – сортировать «по ссылке», а не по представлению. Для этого в методе Сортировать следует использовать объект СравнениеЗначений:

ОбъектСравнения = Новый СравнениеЗначений;
ТаблицаДокументов.Сортировать("Дата,Ссылка", ОбъектСравнения);

Особенно это важно для таблиц с большим количеством (несколько сотен и тысяч) строк, в алгоритмах критических ко времени исполнения.
---
ДатыЗагрузки.Колонки.Добавить("ДатаЗагрузкТЕСТ", Новый ОписаниеТипов("Дата"));
---
Я так понял, нужно типизировать колонку ДатаЗагрузкТЕСТ.
---
```1c
    тз = СсылкаНаОбъект.ДокументыОснования.Выгрузить();
    тз.Свернуть("ТН");
    Запрос = Новый Запрос("Выбрать тз.тн поМестить вт из &тз как тз; выбрать максимум(тн.ДатаЗагрузки) КАК МаксимальнаяДатаЗагрузки , минимум(тн.ДатаЗагрузки) КАК МинимальнаяДатаЗагрузки из вт");
    Запрос.УстановитьПараметр("тз",тз);
    рез = Запрос.Выполнить().Выбрать();
```

ну, как-то так
---
Спасибо большое)
---
обращайтесь
Доброго дня. Надо внести остатки по некоторым счетам. Через ручная операция. Дальше надо сделать корректировку регистров. Вопрос собственно такой. Как узнать по каким регистрам сделать корректировку. Для определённых счетов.
---
В рабочей или демо базе сформируйте отчет "Обороты счета" для нужного счета с периодичностью "По документам". Открывайте документы и смотрите, по каким регистрам они формируют движения.
---
Какие остатки вы вводите и в какой конфигурации 1с ?
---
1. Все функции -> Регистры накопления, сведений, бухгалтерии, расчета...
2. Консоль запросов
3. Универсальный отчет
---
раз корректировку уже надо сделать, это означает, что вы знаете какую корректировку надо сделать

если бы вы не знали, какую корректировку надо делать, вы не знали бы и того, что ее надо делать

как-то так
и где я не прав?
---
Хорошо. Перефразирую вопрос. Я вношу начальные остатки по счетам через ручную операцию. Как узнать в какой регистр нужно внести эти же остатки.
---
КУП. Пока не ввожу а только подготавливаюсь. Там все очень запутано и не понятно что может понадобится. По этому хотелось бы узнать более или мание универсальный вариант.
---
КУП? Не знаю такую конфигурацию
В типовых для ввода начальных остатков существуют специальные документы. Документом операция вводятся только те остатки , по которым нет документа
Универсального рецепта не существует
---
В рабочей или демо базе сформируйте отчет "Обороты счета" для нужного счета с периодичностью "По документам". Открывайте документы и смотрите, по каким регистрам они формируют движения.
---
Обороты счета" для нужного счета с периодичностью "По документам"
Это идея сейчас попробую. На демо базе.
Доброго дня.
Есть форма документа. В ней добавил свой реквизит ссПодразделения. Указал ТИП СПИСОК ЗНАЧЕНИЙ. ТИП ЗНАЧЕНИЙ указал ПОДРАЗДЕЛЕНИЯ ОРГАНИЗАЦИЙ.
Проверил все работает прекрасно.
Что бы при обновлении все это не слетало, запускаю декомпилятор УФ.
Он мне выдает код:

```1c
    ///// РЕКВИЗИТЫ //////////

    МассивДобавляемыхРеквизитов = Новый Массив;

    // ****** Реквизит формы "ссПодразделения" ***********

    НовыйРеквизит = Новый РеквизитФормы("ссПодразделения",Новый ОписаниеТипов("СписокЗначений"));
    НовыйРеквизит.Заголовок = "Сс подразделения";
    НовыйРеквизит.СохраняемыеДанные = Ложь;
    МассивДобавляемыхРеквизитов.Добавить(НовыйРеквизит);

    ЭтаФорма.ИзменитьРеквизиты(МассивДобавляемыхРеквизитов);

    ///// КОМАНДЫ //////////

    ///// ЭЛЕМЕНТЫ //////////

    // ****** Поле формы "ссПодразделения" ***********

    НовыйЭлемент = Этаформа.Элементы.Вставить("ссПодразделения",Тип("ПолеФормы"),Неопределено,ЭтаФорма.Элементы.Сотрудники);
    НовыйЭлемент.Вид = ВидПоляФормы.ПолеВвода;
    НовыйЭлемент.ГоризонтальноеПоложение = ГоризонтальноеПоложениеЭлемента.Право;
    НовыйЭлемент.ПутьКДанным = "ссПодразделения";
```

НО. Прикол в чем, декомпилятор ни где не указал ТИП ЗНАЧЕНИЙ.
Как теперь добавить этот тип значений в коде???
---
ЭтаФорма.ИзменитьРеквизиты(МассивДобавляемыхРеквизитов);
После этой строки вставить код:
ЭтаФорма.ссПодразделения.ТипЗначения = Новый ОписаниеТипов("нужныйТип");
---
ЭтаФорма.ИзменитьРеквизиты(МассивДобавляемыхРеквизитов);
После этой строки вставить код:
ЭтаФорма.ссПодразделения.ТипЗначения = Новый ОписаниеТипов("нужныйТип");
---
Ну и указать автору декомпилятора на обнаруженный нюанс. :-)
---
А есть свежий декомпилятор??? А то мой 2015 года и не обновляется.
Поделитесь ссылкой. Можно платную версию.
---
Нет, я им никогда не пользовался. :-)
---
ЭтаФорма.ссПодразделения.ТипЗначения = Новый ОписаниеТипов("нужныйТип");
Спасибо. Получилось.
Добрый день, УНФ 1.5. Документ счет на оплату убрать из группы "Создать на основании" создание расходной накладной. Или убрать или сделать не доступной. Элементы.ГруппаГлобальныеКоманды.Видимость = Ложь; - убираю всю группу, а как убрать расходную?
---
Тем более

```1c
    Если Не РольДоступна("МояРоль") Тогда
    ВызватьИсключение("Вам нельзя");
    КонецЕсли;
```
---
если можете править конфигурацию,
попробуйте
откройте документ Расходная накладная
перейдите на закладку: Ввод на основании
из списка: Вводится на основании, уберите документ Счет
---
У свойств документа отредактировать состав документов на вкладке "Ввод на основании". Но делать это нежелательно, т.к. меняется логическая структура конфигурации. В вашем случае правильнее сделать затычку в "ОбработкаЗаполнения()" документа, который вводиться на основании. Там программным кодом заполнять Отказ=Истина, или даже ВызватьИсключение()
---
.Забыл написать, что это нужно при определенном условии. если такой то пользователь, то скрыть, если нет ...
---
Тем более

```1c
    Если Не РольДоступна("МояРоль") Тогда
    ВызватьИсключение("Вам нельзя");
    КонецЕсли;
```
```1c
    |ВЫБРАТЬ
    | ТоварыНаСкладахОстатки.Склад КАК Склад,
    | ТоварыНаСкладахОстатки.Товар КАК Номенклатура,
    | ТоварыНаСкладахОстатки.КоличествоОстаток КАК Остаток
    |ИЗ
    | РегистрНакопления.ТоварыНаСкладах.Остатки(
    | ,
    | Фирма = &фирма
    | //И Склад = &склад
    | И Товар В (&МассНоменклатуры)) КАК ТоварыНаСкладахОстатки
    |");
```

Есть еще регистр РезервыТОваров. Подскажите, как из остатка вычест Резерв
---
Можно ещё левым соединение регистров по Складу, Номенклатуре.
| ТоварыНаСкладахОстатки.КоличествоОстаток - Естьnall( ТоварыВРезервеНаСкладахОстатки.КоличествоОстаток,0) КАК Свободный остаток
---
как то так, потом это сгруппировать
---
Можно ещё левым соединение регистров по Складу, Номенклатуре.
| ТоварыНаСкладахОстатки.КоличествоОстаток - Естьnall( ТоварыВРезервеНаСкладахОстатки.КоличествоОстаток,0) КАК Свободный остаток
---
Понравилось ;-)

```1c
    Естьnall
```

Т.е. если резерв есть в наличии - то не учитываем?
---
Если есть в резерве, то у остатка резерв надо отнять
как получить инициалы? нашел процедуру ФамилияИнициалыФизЛица(Объект = "", Фамилия = " ", Имя = " ", Отчество = " ")
и вот собственно вопрос как получить первую букву после пробела?
пример объект = "Антонов Борис Владимирович"
---
Так процедура универсальная, передайте туда свой объект и получите на выходе "Антонов Б.В."
---
Так процедура универсальная, передайте туда свой объект и получите на выходе "Антонов Б.В."
---
Ну и задача! Все меньше общего у профессий "программист" и "1Сник" - последние без готовой функции ничего не могут!

P.S. Попробуйте почитать описание строковых функций Найти() и Сред() и потом подумать.
---
будто джависты в библиотеках не капаются. Когда есть такая функция зачем велосипед изобретать?
---
всем спасибо, я думал параметры обязательны.
---
ФамилиИО = ФамилияИнициалыФизЛица("Антонов Борис Владимирович", Фамилия = " ", Имя = " ", Отчество = " ") ;

С вас 500 рублей в кассу.
Добрый день! У меня есть самописная конфигурация на основе БСП 3.1.5.132. Для хранения файлов использую стандартный механизм:
1) в настройках работы с файлами указываю (хранить файлы - в томах на диске);
2) выставляю флаг "Создавать подкаталоги с именами справочников-владельцев файлов
3) указываю тома для размещения файлов

и у меня при размещении файла получается путь вида "\\Nbprog1c\d$\File_storage\Штампы\20211118", где "\\Nbprog1c\d$\File_storage" путь до тома.

А как можно получить этот путь из карточки файла? Юзер должен нажать на кнопку получить ссылку и вставить ее в проводник.
---
Ну так покажите пользователю значене соответствующего реквизита: ПутьКФайлу
Показать можно и через сообщение и через ПоказатьВводСтроки.

Можно сразу открыть окно проводника:

Файл = Новый Файл(ПутьКФайлу);
ЗапуститьПриложение(Файл.Путь);
---
Ну так покажите пользователю значене соответствующего реквизита: ПутьКФайлу
Показать можно и через сообщение и через ПоказатьВводСтроки.

Можно сразу открыть окно проводника:

Файл = Новый Файл(ПутьКФайлу);
ЗапуститьПриложение(Файл.Путь);
---
Спасибо, отлично помогло! То что я и хотел.

```1c
    Файл = Новый Файл(ПутьКФайлу);
    ЗапуститьПриложение(Файл.Путь);
```
Подскажите пожалуйста, где в логах показывается информация о системных сообщениях при загрузке базы, а именно сообщение о том, что Конфигурация базы данных не соответствует сохраненной конфигурации
---
Решено
---
Есть вероятность, что и нет такого в логах. Ну может БСП что-то пишет в ЖР.
Вообще, для этого есть методы глобального контекста КонфигурацияИзменена(), КонфигурацияБазыДанныхИзмененаДинамически().
---
СП что-то пишет в ЖР.
Вообще, для этого есть методы глобального контекста Ко
а как получить значение метода КонфигурацияИзменена() в обработке?
---
Так выполнить эту функцию и посмотреть/использовать ее результат. В веб- и тонком клиентах не работает, нужно уходить на сервер.
---
Решено
Есть Счет-фактура выданный (аванс) на основании помеченного на удаление Приходного кассового ордера на основании помеченной на удаление Реализации товаров и услуг. (рис. 1) В книге продаж её нет (рис.2), там другая за 19/11/2021. В списке "Документы продажи" её нет, в списке "Счета-фактуры и таможенные документы" она не реагирует ни на Del, ни на Shift-Del.

Можно ли её штатно как-то удалить либо пометить на удаление?
---
Попробуйте самый простой способ: перейти в удаление помеченных объектов и начать удалять эти документы, программа не даст их удалить, так как есть эта счет-фактура и спросит, что с ней делать удалить или заменить. (если эти документы удалять не надо, потом просто прекратите действия удаления).

Ну или правой кнопкой мыши и пометить на удаление, если не пробовали))
---
Попробуйте самый простой способ: перейти в удаление помеченных объектов и начать удалять эти документы, программа не даст их удалить, так как есть эта счет-фактура и спросит, что с ней делать удалить или заменить. (если эти документы удалять не надо, потом просто прекратите действия удаления).

Ну или правой кнопкой мыши и пометить на удаление, если не пробовали))
---
Спасибо за быстрый ответ

(2) Ну или правой кнопкой мыши и пометить на удаление

По правой кнопкой мыши не было команд "Удалить" и "Пометить на удаление"
Доброго времени суток, помогите разобраться, пытаюсь пропарсить сайт на котором динамическая страница.
при ответе на http запрос получаю

```1c
    <!DO CTYPE html>
    <ht ml lang=">
    <head>
    <met a charset="utf-8">
    <met a http-equiv="X-UA-Compatible" content="IE=edge">
    <met a name="viewport" content="width=device-width,initial-scale=1">
    [*]
    <met a name="description" content="Твоя удача на 100% ! Интернет-аптека предлагает купить лекарства недорого по самой низкой цене в городе. Доставка на дом. Прием онлайн заказов.">
    <title>Аптека Рауза-АДЕ. Купить лекарства недорого. Доставка. Онлайн заказ. - Интернет-аптека Рауза-АДЕ</title>
    [*]
    [*]
    [*]
    [*]
    [*]
    [*]
    </head>
    <body>
    <noscript>
    <strong>We're sorry but zelenka doesn't work properly without JavaScript enabled. Please enable it to continue.</strong>
    </noscript>
    <div id="app"></div>
    <sc ript src="/js/chunk-vendors.065fa533.js"></sc ript>
    <sc ript src="/js/app.2c6b11ad.js"></sc ript>
    </body>
    </html>
```

Вопрос как мне получить текст хтмл который формируют скрипты на сайте?
---
а "по-гуглить"?
тапать тут
---
Очевидно, необходимо их как-то выполнить. Т.е. отрендерить итоговую страницу браузерным движком.
В голову приходит только поле HTML документа.
Но можно попробовать ковырнуть глубже. Посмотреть в браузере в режиме отладки какие генерятся http-запросы при рендеринге странички. И возможно получится выцепить аккуратный запросик, который возвращает именно те данные, которые вам нужно. Тогда и всю страничку парсить не придется и мучиться с рендерингом странички тоже.
---
а "по-гуглить"?
тапать тут
---
спасибо, почему то не попадался данный результат)
---
Второй вариант (работает не везде) - посмотреть куда шлет запросы JS и имитировать их. Процентах в 30 случаев вы найдете некое API, которое вернет вам готовый JSON