На одном проекте - клиент попросил отображать в программе данные, которые выдаю специализированные сайта в формате RSS - Что делать !?
Писать парсер rss для 1С
Первым делом, взглянув на ссылки, подумал что - обычный XML, сейчас его разложу и быстренько загружу в базу, но:
Выяснилось что сайты имеют разные форматы ввода RSS и главное они не валидные(
таким образом, написав небольшой код, который получает ссылку, далее XMLФайл.Прочитать() на одном сайте проходил на ура (этот пример я описывал в статье: Чтение данных с сайта в формате XML и загрузка в 1С), а вот второй сайт, и третий тоже, при попытке прочитать() выдавали:
{ОбщийМодуль.РегЗадания.Модуль(79)}: Ошибка при вызове метода контекста (Прочитать)
Пока XMLФайл.Прочитать() Цикл
по причине:
Ошибка разбора XML: - [1,1]
Фатальная ошибка:
Extra content at the end of the document
SystemId url rss
решил попробовать на rss других известных сайтов - 80% из проверяемых выдавали ошибку
Пришлось написать прямой построчный парсер RSS:
Структура конфигурации
ИсточникиRSS - URL на RSS, ДанныеRSS - сюда записываются загруженные данные новостей
Код получился таким(в принципе код универсальный, но возможно что-то придется подпилить):
Как известно, с помощью языка запросов 1С получить уникальный идентификатор объекта ссылочного типа на данный момент нельзя. Но используя возможность СКД обращаться к внешним функциям можно получить строковое представление уникального идентификатора ссылки. Для этого необходимо использовать глобальную функцию XMLСтрока в вычисляемых полях в макете схемы компоновки.
Далее проведем эксперимент по быстродействию получения результата через запрос с последующей обработкой выборки и вариантов с использованием СКД.
Рассмотрим два случая - вывод в табличный документ и формирование текстового документа.
Так же в случае с СКД мы можем создать схему компоновки программно или использовать готовую. Результат работы СКД так же можно обойти в цикле, либо вывести в таблицу значений с последующей обработкой. Для экспериментов будет использоваться платформа 8.3, конфигурация УТ11 (файловая), справочник "КлассификаторБанковРФ", более 4000 элементов.
Схему компоновки и макет можно посмотреть, скачав обработку (ссылка в конце).
По результатам замера производительности видно, что вывод результата в табличный документ происходит быстрее при использовании СКД, причем вариант с программным созданием схемы отрабатывает несколько быстрее.
В тоже время вывод результатов в текстовый документ отрабатывает быстрее для запроса.
Программное создание схемы компоновки отработало быстрее, чем получение макета схемы.
Конфигурация
1 Alt + К + Enter Открыть конфигурацию
2 Alt + К + Т Поиск во всех текстах
3 Alt + К + О Объединение конфигураций
4 Alt + K + З Загрузить измененную конфигурацию
5 Alt + К + Е Конвертирование данных
Администрирование
6 Alt + А + П Пользователи
7 Alt + А + Х Сохранить данные
88 Alt + А + В Восстановить данные
9 Alt + А + Ы Выгрузить данные
10 Alt + А + Г Загрузить данные
11 Alt + А + Н Настройка журнала регистрации
12 Alt + А + Р Распределенная ИБ
13 Alt + А + Р + У Управление
14 Alt + А + Р + А Автообмен
Действия
15 Alt + Д + Т Открыть в отладчике
16 Alt + Д + К Синтаксический контроль запросов
17 Alt + Д + И Синтаксический контроль
18 Alt + Д + Р Процедуры и функции модуля
Файл
19 Ctrl + N Новый
20 Ctrl + O Открыть
21 Ctrl + S Сохранить
22 Ctrl + P Печать
23 Alt + Ф + Р Сравнить файлы
24 Alt + Ф + З Закрыть
25 Alt + Ф + Р + Р + Enter Просмотр
26 Alt + Ф + М Параметры страницы
Работа с закладками
27 Shift + F2 Предыдущая закладка
28 Alt + F2 Закладка
29 F2 Следующая закладка
Работа с блоком
30 Ctrl + Shift +F Форматировать
31 Tab Сдвинуть вправо
32 Shift + Tab Сдвинуть влево
33 Ctrl + Num Добавить комментарий
34 Ctrl + Shift + Num Удалить комментарий
Окна
35 Ctrl + F4 Закрыть окно
36 Ctrl + Shift + F6 Следующее окно
37 Ctrl + F6 Предыдущее окно
38 Alt + О + К Каскадом
39 Ctrl + Shift + Z Закрыть окно сообщений
40 Ctrl + Alt + F Следующая страница
41 Ctrl + Alt + B Предыдущая страница
42 Alt + О + Р Разделить окно
Поиск и замена
43 Ctrl + Shift + F3 Заменить
44 Ctrl + F3 Искать
45 F3 Повторить поиск
46 Alt + F3 Искать назад
47 Shift + F3 Искать вперед
48 Ctrl + Shift + L Переход к строке
Сервис
49 Ctrl + F2 Калькулятор
50 Alt + С + С Синтаксис помощник
51 Alt + С + Н Настройка шаблонов
52 Alt + С + В Временная блокировка
53 F11 Запуск предприятия
54 F12 Запуск отладчика
Помощь
55 F1 Помощь
56 Shift + F1 Содержание
57 Ctrl + F1 Поиск в Синтакс-Помощнике
58 Alt + П + О О программе
Общие
59 Alt + Enter Свойства
60 Alt + F4 Выход
1С Предприятие
Документ
1 Ctrl + Enter Кнопка по умолчанию
2 F4 Выбор поля (альтернатива мыши)
3 Tab Прямой обход полей
4 Shift + Tab Обратный обход полей
Справочник/Действия
5 Ins Новый элемент
6 Ctrl + F9 Новая группа
7 Shift + Enter Изменить элемент
8 Alt + Д + Р Просмотр элемента или группы
9 F9 Копировать элемент или группу
10 Del Пометить элемент/Снять пометку
11 F5 История значения
12 Alt + Д + А Найти в дереве
13 Ctrl + F5 Перенести в другую группу
14 Alt + Д + Ч Подчиненный справочник
Сортировка
15 Ctrl + 1 Сортировка справочника по коду
16 Ctrl + 2 Сортировка справочника по наименованию
17 Ctrl + 3 Сортировка справочника по реквизиту
18 Ctrl + стрелка вверх На уровень вверх
19 Ctrl + стрелка вниз На уровень вниз
Круглов Дмитрий дмитриевич:
Скрипт определяет наличие предыдущих платформ и деинсталлирует их..
далее устанавливает последнююю версию, прописывает нужные базы и прямые ярлыки
Рябко Михаил Евгеньевич:
При установке файла 1CEnterprise 8.2.msi через GPO платформа ставилась, но потом ее не могли удалить (после выключения из групповых политик установки). Никакой unistaller ee не брал. Потом почистили реестр, вроде победили.
Более того, инсталлер не прописывал ярлыки в каталог %SystemRoot%\Installer\{8150646B-4F88-4415-AF2A-F96199E3DA37},из за этого все ярлыки были без картинок.
Даже если бы все работало, этот способ не очень понравился, т.к. для 8.2 через те же GPO нельзя прописать базы. А смысл тогда?
Далее пробовали через скрипт. Такое же непредсказуемое поведение по деинсталляции платформы. Кроме этого появлялось 2 ярлыка после установки. Один - который прописан в скрипте, другой - после работы инсталлятора. Ну ладно, написал файл трансформации, чтобы лишний ярлык не создавал, но проблема ошибки при выполнения скрипта ("Требуется объект") и деинсталляции осталась.
Точно также проблема деинсталляции и с ярлыками остается при прямой установке 1CEnterprise 8.2.msi (без трансформации, запуском из проводника), разве что из списка программ удаляется, а все файлы остаются.
В итоге пришли к решению в лоб. Раз уж запуск 1cestart.exe на расшаренной папке дает более-менее положительный результат вручную, то нужно и идти по этому пути. Написал скрипт установки. Вроде работает. Правда, чтобы ограничится установкой без запуска, пришлось создать базу-пустышку и намеренно внести ошибку в параметр запуска. Далее по комментариям все должно быть понятно.
А так есть подозрение, что причина в кривом файле 1CEnterprise 8.2.msi (ярлыки то хотя бы он должен создавать нормально?). То ли дело установка через Setip.exe - тут все в шоколаде и работает.
Итак, альтернативный скрипт (сохранить с расширением *.vbs)
Недавно делал перенос справочников и документов из 1С 7.7 "Зарплата и кадры" в 1С 8.1 "Управление торговым предприятием" через Com соединение. Во время переноса столкнулся с некоторыми проблемами. Одна из них - это при выполнении запроса очень важно правильно указать синтаксис передаваемых значений, особенно даты, иначе запрос не будет выполняться. Как правильно написать запрос? Смотрим:
Если нам необходимо установить отбор в журнале, например по сотруднику, то сделать это можно следующим образом:
Из журнала расчетов можно выбрать записи без запроса, методом прямой выборки. В некоторых ситуациях этот способ может быть даже удобней чем через запрос. В данном случае синтаксис будет довольно простым:
Результат запроса может быть выгружен в таблицу значений или дерево значений с помощью метода Выгрузить. Затем над ними могут быть произведены другие операции: сортировка, свертка, перебор строк и другие действия.
Следующий пример выгружает результат запроса в таблицу значений с прямым порядком обхода строк:
Если используется иерархический обход результата запроса или обход по группировкам, тогда удобнее выгрузить не в таблицу значений, а в дерево значений, как делается в следующем примере: