Больше хороших боянов, товарищи! Ура!!!
(из первомайского обращения к коллективу
фабрики музыкальных инструментов)
Тема взаимодействия 1С с другими приложениями через COM относится к разряду популярных и
активно обсуждается во многих публикациях, например:
//infostart.ru/public/65045/
//infostart.ru/public/69248/
//infostart.ru/public/64883/
//infostart.ru/public/62737/
//infostart.ru/public/81333/
//infostart.ru/public/170424/.
Материалы для данной работы получены в результате разработок, решавших практические задачи обмена данными между 1С и информационной
системой «ЭТРАН» РАО РЖД, а также с программными системами прочих поставщиков информации о движении грузов по железным дорогам.
История версий:
Версии: 8.1.1.4 (для 8.1) и 8.2.1.4 (для 8.2) от 01.03.2014:
1) Набор прав SA для усиленного контроля «полного доступа» к базе,
описанного в //infostart.ru/public/225570/.
Используется для контроля доступа к обработке «КонсольЗапросов1СADO»
2) Автономная подсистема «Произвольные фоновые и регламентные задания» (бетта-версия).
3) Дальнейшее развитие функционала обработки «КонсольЗапросов1СADO»:
версия консоли: 8.1.1.3 от 01.03.2014:
1. Реорганизация структуры данных и алгоритмов обработки для обеспечения совместимости
с управляемым приложением.
2. Вынос функционала обработки выборки запроса из модуля формы «ОбработкаВыборки» в модуль объекта.
3. Обработка выделенных строк таблицы результата запроса в форме «ОбработкаВыборки».
4. Вывод времени выполнения и отображение статуса обработки строк в форме «ОбработкаВыборки».
5. Контроль ссылочной целостности при непосредственном удалении объектов в форме «ОбработкаВыборки».
6. Новые шаблоны заполнения для обработки выборки запроса —
— «Обработка табличной части» и «Обработка движений регистратора».
7. Сохранение результата запроса во внешнем файле (*.obj8).
8. «Загрузка» в результат запроса объекта 1С (таблицы/дерева значений), сохраненого во внешнем файле (*.obj8).
9. «Загрузка» в результат запроса списка помеченных на удаление объектов;
10. «Загрузка» в результат запроса таблицы ссылок на список объектов, полученных при выполнении другого запроса;
11. Запрос в режиме «Консоль кода» с показом результатов вычислений в табло значений (в «результате» запроса);
12. Заполнение дерева запросов по переданному объекту «Запрос» —
— используется подсистемой «ViewValues» для его «просмотра».
13. Масса интерфейсных улутшений (в том числе список последних открытых файлов запросов).
14. Интеграция с обработкой 1С:Администратор (//infostart.ru/public/100967/), требуемая версия не ниже 5.6.
Версия 8.1.1.3 от 22.04.013:
1) Часть функционала из модуля объекта плана обмена «ОбменДаннымиCOM« перенесена в новый общий модуль «COMУзел»
(для совместимости с видимостью контекстов в управляемом приложении) с сохранением обратной совместимости;
2) В список стандартных настроек плана обмена добавлены настройки для работы с операционной системой через объект «WScript.Shell»
В форме автозаполнения добавлено заполнение стандартных узлов с кодами «WSH.Run» и «WSH.Exec«;
3) Реализована возможность подключения-отключения к источнику данных на стороне сервера с инициализацией (передачей управления)
со стороны клиента (для выполнения на стороне сервера некоторых действий: например, включения-выключения VPN-соединений);
подробнее…
Версия 8.1.1.2 от 08.03.013:
1) Функционал выполнения запросов ADO:
— поддержка работы с внешней компонентой GameWithFire.dll, подробнее…
2) Консоль запросов:
— возможность держать открытым менеджер временных таблиц для повторного использования
временных таблиц созданных после интерактивного выполнения запроса (Рис.18).
— сервис выборочного удаления строк таблицы результата запроса
по произвольному условию (Рис.16, Рис.17).
Возможности подсистемы:
- Обеспечение взаимодействия и обмен данными 1С:Предприятия с любыми приложениями, поддерживающими технологию COM;
- Развитые возможности для работы с библиотекой ADO:
- а. Выполнение любых инструкций SQL: чтения, вставки, обновления, удаления, изменения структуры данных и т.п.;
- b. Выполнение пакета инструкций (multi-batch-statement);
- c. Возможность использования в запросах большинства опций ADO (Рис.11, Рис.12)
согласно документации (см. ниже ссылки на Интернет-ресурсы); - d. Выполнение запросов с выгрузкой результата в таблицу значений
(в том числе с выгрузкой результата выполнения каждой инструкции из multi-batch-statement в отдельную таблицу значений); - e. Выполнение запросов в цикле с подстановкой значений параметров из переданной таблицы значений,
включая параметризованные запросы ADO;
3. Удобные средства для разработки и выполнения административных задач;
В состав подсистемы входят:
1) общий модуль «COMОбменПривелигированный» — пустой, зарезервирован для регламентных серверных процедур;
2) общие модули «COMОбменСервер» и «COMОбменКлиент» — содержит серверные и клиентские варианты функций следующего назначения:
- a. Выполнение запросов 1С в различных режимах;
- b. Выполнение запросов через ADO к внешним источникам данных в различных режимах;
- c. Выполнение запросов в цикле со значениями параметров из таблицы значений,
включая параметризованные запросы ADO с «пред-подготовкой» команды при первом исполнении;
3) общий модуль «COMОбмен» — содержит процедуры и функции сервисного и общего назначения, в том числе:
- a. Открытие файла по имени с помощью узла плана обмена «ОбменДаннымиCOM» в ассоциированном приложении;
- b. Функции синхронизации данных через регистр сведений «ОбменДаннымиCOMСоответствиеОбъектов»;
- c. Общие функции для работы с ADO:
- — Значения перечислений ADO;
- — Соответствие типов 1С и ADO;
- — Установка параметров запросов ADO;
- — Выгрузка результатов запросов ADO в таблицу значений;
4) План обмена «ОбменДаннымиCOM» (Рис.1), выполняет следующие функции:
- a. Служит для хранения данных, необходимых для связи (подключения/отключения) с источником данных через COM (Рис.4):
- — Идентификатор приложения, имя сервера приложения, учётные данные для доступа к данным (логин, пароль);
- — Тип источника данных, возможные значения:
- Файл с данными;
- Файловая база данных (каталог с файлами данных);
- Клиент-серверная база данных;
- Произвольный ресурс интернета;
- — Модули подключения к источнику данных и отключения от источника данных через COM
(исполняются в контексте модуля объекта плана обмена);
- b. Через экспортные методы объекта плана обмена обеспечиваются следующие базовые функционалы:
- — Подключение, отключение к источнику данных через COM;
- — Синхронизация объектов в базе 1С с данными из внешних источников;
В данном функционале механизм регистрации изменений и транспортный механизм системы универсального обмена данными
не задействованы. Имеется практическая возможность для реализации на основе этих механизмов нестандартных обменов с
внешними источниками данных, использующих прямой доступ к базам данных через ADO (в том числе запросы для записи данных
и вызов хранимых процедур). - c. Содержит вспомогательные данные, используемые при заполнении настроек и выборе узла плана обмена из списка:
- — Внутренний числовой код платформы источника данных. Соответствует виду приложения для доступа к данным.
Выбирается из списка стандартных настроек (Рис.5).
Некоторые платформы из этого списка: - 1С:Предприятие-7.7, 1С:Предприятие-8.0 (и остальные версии) через OLE и COM;
- MS Word, MS Excel через COM;
- Различные СУБД через ADO: MS SQL-Server, MySQL, PostgreSQL, IBM DB2, Oracle, FoxPro и т.д.
- Произвольный COM-объект (доступны для изменения любые настройки соединения);
- — Вид узла (конфигурации) источника данных — ссылка из справочника «ВидыУзловCOM».
Используется для произвольной классификации источников данных по их внутренней конфигурации.
Например, для 1С:Предприятие это может быть имя прикладного решения ТИС-9.2, УТ-10.3, УПП-1.3 и т.д.; - d. Предоставляет средства для автоматического заполнения настроек источников данных:
- — Выбор типа платформы источника данных в форме узла плана обмена из широкого списка стандартных настроек;
- — Начальное заполнения плана обмена «ОбменДаннымиCOM» и справочника «ВидыУзловCOM» стандартными
(«предопределёнными») значениями в форме автоматического заполнения (Рис.2);
5) Справочник «ВидыУзловCOM», служит для произвольной классификации источников данных по конфигурации базы данных.
Используется для построения списка узлов плана обмена «ОбменДаннымиCOM» c иерархией по видам узлов (Рис.3).
Этот список открывается для подбора источника данных запроса ADO в обработке «КонсольЗапросов1СADO».
6) Обработка «КонсольЗапросов1СADO», доработанная версия стандартной обработки «КонсольЗапросов» (Рис.10).
Удобный инструмент для разработки и администрирования.
В этой консоли сделано много улучшений и дополнительных возможностей, в том числе:
— Выполнение запросов к внешним источникам данных через ADO (Рис.11);
— Использование событий выполнения запросов для организации сложных действий, например, выполнения «составных» запросов (Рис.14);
— Использование событий обработки результатов запросов для обработки данных по произвольному алгоритму (Рис.15);
7) Регистр сведений «ОбменДаннымиCOMСоответствиеОбъектов«, используется для хранения соответствий ссылок на объекты из текущей базы 1С и
уникальных кодов, идентифицирующих объекты во внешних источниках данных, соответствующих узлам плана обмена «ОбменДаннымиCOM» .
Работа с библиотекой ADO:
Возможности работы с библиотекой ADO (в части выполнения запросов) реализованы в подсистеме более-менее полно и последовательно,
согласно документации, имеющейся на следующих ресурсах интернета:
1. Справочная информация (учебник) по библиотеке ADO (Microsoft ActiveX Data Object):
http://www.w3schools.com/ado/
2.Информация по строке соединения с различными источниками данных ADO:
http://www.connectionstrings.com/
3.Статьи о использовании библиотеки ADO:
http://www.script-coding.com/ADO.html
http://www.sql.ru/articles/mssql/2005/122703ado.shtml
Документация:
По объектам подсистемы составлено подробное описание, включающее подробности, не описанные в настоящей статье.
О некоторых из них также можно прочитать в следующих публикациях:
1. Подсистема «COMExchange»: прямой доступ к EXCEL через ADO.
2. Подсистема «COMExchange»: «прямые» запросы к базе 1С через ADO или как простые элементы сделать “предопределёнными”.
3. Подсистема «COMExchange»: ускорение выгрузки запросов ADO или «игра с огнём».
4. Подсистема «COMExchange», консоль запросов, сервис обработки выборки запроса: грузим курс «бакса» ЦБРФ из файла *.dbf или *.xlsx.
5. Подсистема «COMExchange», консоль запросов, сервис обработки выборки запроса: корректируем регистры или «Берём банк, кассу, экспроприируем экспроприаторов».
6. Управление VPN-соединением из 1С на стороне клиента и на стороне сервера.
7. Подсистема «COMExchange»: консоль запросов в режиме «Консоль кода».
Комплект поставки:
Подсистема поставляется вместе с подсистемой «ViewValues»,
так как она используется некоторыми функциями просмотра табличных объектов в консоли запросов (Рис.13).
Архив комплекта поставки COMExchange-8x.rar содержит:
1. файлы конфигураций подсистемы для следующих релизов платформ 1С: 8.1.14, 8.2.13, 8.2.14;
2. файл ..Samples*.* (сохраненные запросы, файлы с данными) — примеры демонстрирующие возможности подсистемы;
Особенности установки:
После установки рекомендуется выполнить начальное заполнение объектов подсистемы стандартными значениями
в форме автоматического заполнения (Рис.2).
Благодарности:
Хочу выразить признательность неизвестному программисту 1С, оставивший авторский комментарий //Vitkovsky в форме
обработки выборки данных консоли запросов, за удобный, гибкий инструмент, который много раз выручал меня в работе.
Всем доброго времени суток!
Представляю вашему вниманию мои скромные наработки по взаимодействию 1С со внешними миром через COM.
Несколько замечаний:
1) Предлагаемые список стандартных настроек источников данных ADO широк, но
функции выполняющие запросы через ADO реально проверялись со следующими источниками данных:
для MS SQL Server ч/з OLEDB (для баз с разной архитектурой, в том числе для 1С-7.7-sql и 1С-8.х-sql);
для FoxPro ч/з OLEDB (для баз 1С-7.7-dbf);
для MS EXEL ч/з Excel-Jet.OLEDB и Excel-Ace.OLEDB;
В последнем случае возникли определенные ньюансы, например для параметрических запросов
с символами подстановки параметра ‘?’ провайдер для всех параметров запроса
устанавливает одинаковые имена — «?».
В связи с этим предприняты определенные меры,
которые, как я надеюсь, больше не превидут к неожиданностям при работе с другими СУБД.
2) Консоль запросов в комлекте с подсистемой достаточно универсальна и может использоваться независимо.
Для выполнения запросов через ADO требуется план обмена «Обмен данными COM» и общие модули подситемы.
Остальной функционал (кроме некоторых функций просмотра «табличных» объектов) будет работать в любой конфигурации.
+ за multi batch еще в консолях не было
Как ведет себя опция Сохранять откомпилированную версию(«параметрезованный» запрос) в DB2?
Уважаемые пользователи сайта кто использовал даную подсистему кроме автора отпишитесь как работает, все ли так гладко как говорит автор. Спасибо за внимание жду ответа.
(3) dyak84, сам бы протестировал и нам рассказал. =)
(2) German, чесно говоря не проверял, на подхвате нет сервера DB2.
В функциях выполняющих запрос все сделано по документации:
Если эта опция установлена, у объекта ADODB.Command свойству Prepared присваивается Истина.
А в функции выполняющих запрос в цикле при повторном выполнении команды —
— даже текст запроса не передается на выполнение, только значения параметров для установки.
Ну а там как провайдер данных на душу положет…
В SQL Server Books Online, например, об этом можно прочитать:
«что не все провайдеры данных поддерживают параметризованные запросы»
(3) dyak84, я пожалуй тебя поддержу…
Например Excel через Jet.OLEDB меня малость неприятно удивил.
Теперь я от провайдеров данных готов ожидать чего угодно.
Соображения здравого смысла тут не работают.
Логика бывает математической, женской и ПРИКЛАДНОЙ 🙂
Выкладываю подправленную версию консоли.
Изначально я при любой смене источника данных очищал настройки типа ADO у параметров запроса.
Потом решил делать так только при очистке значения.
Но что-то малость прокосячился …
… это все наследие 1с-77:
там вместо НЕ ЗначениеЗаполнено()[/I нечто с противоположным смыслом — [I]ПустоеЗначение()
😉
Выкладываю подправленную версию консоли.
Изначально я при любой смене источника данных очищал настройки типа ADO у параметров запроса.
Потом решил делать так только при очистке значения.
Но что-то малость прокосячился …
… это все наследие 1с-77:
там вместо НЕ ЗначениеЗаполнено() нечто с противоположным смыслом — ПустоеЗначение()
😉
Доброе всем время суток!
Изменен комплект поставки.
Текущие изменения:
1. Включены исправления в консоли запросов из поста (8);
2. Добавлен пример (сохраненный запрос),
демонстрирующий прямой доступ к EXCEL через ADO
+ дополнительные возможности консоли;
Вот это работа !
Недооцененная сообществом, по-моему.
(10) bulpi, ну общество я думаю пока находится в процессе оценивания…
…как говорится жираф он большой 😉
Да! Работа конечно колоссальная.Автору зачет.Обязательно попробую реализовать обмен по средствам данного механизма.Плюс однозначно!
Доброе всем время суток!
Изменен комплект поставки.
Текущие изменения:
1. Теперь в консоли запросов время выполнения запросов и время выгрузки
показывается с точностью до миллисекунды.
2. В план обмена «ОбменДаннымиCOM» добавлена новая платформа источника данных
«ADO-подключение к таблице dBase ч/з OLEDB» для доступа через ADO к DBF-файлам
и соответствующий ей стандартный узел плана обмена, создаваемый в форме автозаполнения.
3. В план обмена «ОбменДаннымиCOM» также добавлена форма авторизации на сервере 1С
для ввода имени, пароля Администратора сервера 1С, а также, при необходимости,
для уточнения сетевого протокола и номера порта для связи с сервером.
на счет Excel.
Выгружать в новом формате (xlsx) легче через xml. не будет проблем с типами…
сделайте unzip для любого ёкселевского фала — поймете структуру…
кстати можно и украшать так же… да и загружать в прЫнципе….
============ так же и в ворд….
(14) MiCe, фэнкс!
дасс, пропустилс по невнимательности в строке соединения
для стандартных настроек «ADO-подключение к файлу XLS ч/з ACE.OLEDB-12.0»,
используемых для «предопределенного» узла «ExcelAce» неприметное словечко «Xml».
Как раз из-за этогоExcel-2012 и отказывался узнавать
созданный провайдером при выгрузке данных файл с расширением *.xlsx.
Поскольку фактический формат созданного файла другой — «бинарная» рабочая книга *.xlsb.
Более правильной для расширения файла *.xlsx будет строка соединения
Provider=Microsoft.ACE.OLEDB.12.0; Data Source=»!Путь!»; Extended Properties=»Excel 12.0 Xml; HDR=Yes;»
с близжайшим обновлением подправлю стандартные настройки.
Сейчас придется подправить настройки в узле в ручную.
После выхода обновления — можно будет заполнить настройки по умолчанию при «очистке» строки соединения в форме узла.
в строке провайдера ёкселя есть параметр imex… если он равен 1 — то все данные интерпретируются как тип строка…
при загрузке полезно… не будет пропуска данных не соответствующих типу колонке…
и еще…. в тексте запроса можно использовать именованные области…
и еще ))) можно готовить шаблоны ёкселя…. потом создавать файлы на основе шаблона и выгружать в них….
это даст украшательства…
и еще раз напомню…. xlsx зазипованный xml…. намного более гибкий формат….
доступ к ёкселю через адо слишком чувствителен к данным….
(16) MiCe,
и еще….
Нельзя объять необъятное.
К.Прутков
🙂
к параметру imex я присматривался,
но так и не стал его включать в строку соединения в стандартных настройках
плана обмена «Обмен данными COM».
Кому надо, тот без труда может подправить строку соединения в форме узла
как ему надо или наплодить разных узлов на все случаи жизни.
Дело в том, что возвращать все колонки из экселя в строковом виде тоже не всегда удобно.
Например, если полученную из экселя таблицу загружать потом в 1С-ном запросе во временную таблицу
и формировать из ВТ выборку данных для загрузки, например, в периодический регистр сведений.
Значение поля Период в виде текста как-то совсем получается неудобным.
Прямо в запросе 1С его к дате не преобразуешь
(про функцию ВЫРАЗИТЬ() — я могу долго и нецензурно выражаться 🙂 )
А при обработке в коде 1С при пребразованиии с помощью функции ДАТА()
тоже могут возникнуть проблемы, так как текстовое представление даты не всегда соответстует принятому в 1С.
(17),
и еще….
🙂
я не агитирую использовать только старый формат книг эксель *.xls или только новый *.xlsx.
в плане обмена «Обмен данными COM» есть стандартные узлы,
создаваемые в форме автозаполнения, как для старого формата так и для нового.
такии образом:
что кому нравится или что когда нравится…
🙂
да…. как все таки не хватает нативного tsql…
примеры провайдера
у екселя есть сохранкние в формат «таблица xml 2003»
у платформы 1с хороший движОк xml с сериализацией… наладить трансформ и всех делов….
на новых платформах 1с пытается сделать что то наподобие линкед сервер…. но как всегда через ж….
куча недореализаций…. нет обновлений… все дело в том что нужно четко сопоставлять типы данных… а с этим проблема…. и не забывайте — ексель не реляционная база данных… потому и куча условностей….
оффтоп… 8=)
Пока не смотрел, но судя по описанию работа действительно крутая. Я сейчас занимаюсь (в свободное время) разработкой подобных механизмов, но в более упрощенном виде.
Всем доброго времени суток!
Поддержка работы с ВК GameWithFire.dll
—
Обновлены файлы поставки.
Основные изменения:
1.
(ускорение выгрузки результата запроса ADO в таблицу значений);
2. План обмена «Обмен данными COM»:
пользовательское событие ПередСоединением(Соединение,Connect) —
позволяет переопределить строку соединения и модуль инициализации соединения
(подробности в описании подсистемы);
3. Дополнительные возможности в консоли запросов 1С + ADO
(подробности в статье и описании консоли);
(22) качаю, читаю, изучаю! В работе .. и в сельском хозяйстве 🙂 .. информация нужная!
Спасибо, воспользуюсь
Доброе время суток!
Изменены файлы поставки.
В основном изменения коснулись обработки «Консоль запросов 1С + ADO»:
текущая версия консоли: 8.1.1.2-a от 16.03.2013:
1) Открытие дополнительных окон обработки результата запроса в модальном режиме в обработчиках
событий выполнения запросов (добавлены соответствующие команды в меню вставки ключевых слов).
2) Добавлена процедура КонсольРезультатОбновить(Индекс=0) для простого обновления результата запроса
в форме консоли после его програмного выполнения в форме обработки выборки.
3) Для события выполнения запроса ПослеЗапроса( ) добавлен аргумент СтандартнаяОбработка.
4) Улучшен функционально исполняемый код, формируемый шаблонами авто-заполния модулей событий обработки выборки запроса.
Добавлен флаг разрешения обработки («предохранитель») и возможность использования структуры заданных параметров какого-либо
запроса в дереве списка, например, для заполнения свойств объекта перед записью.
—
Также добавлен файл !ВеликаяОктябрьскаяРеволюция.selx с примерами запросов для коррекции записей регистров.
Доброе время суток!
Изменены файлы поставки.
Текущие измнения:
1) План обмена «Обмен данными COM»:
Поправлен вывод сообщений при неудачном соединении с источником данных ADO.
Теперь детальная техническая информация (которая может содержать пароли от серверов данных)
выводится только для пользователей, прошедших «усиленную» проверку на «пролные права»,
заключающуюся в следующем:
Показать
2) Консоль запросов 1С +ADO:
http://infostart.ru/public/181420/
http://infostart.ru/public/181456/
Исправленные мелкие баги интерфейсного характера.
3) Примеры запросов:
добавлены примеры для очистки независимых регистров сведений,
реализующих функционал обработок в некоторых публикациях:
а. чистим_регистры_сведений_1.selx — функционал обработки из статьи
б. чистим_регистры_сведений_2.selx — функционал обработки из статьи
Категорически приветствую.
Должен заметить очень интересная тема- многое понравилось и сейчас анализирую Вашу публикацию.
Хочу заметить, что я тоже иду в данном направлении и видимо есть успехи.
http://infostart.ru/public/183242/
https://github.com/Rugut/UPP/blob/master/v82.all/%D0%9E%D0%BF%D0%B8%D1%81%D0%B0%D0%BD%D0%B8%D0%B5.txt
Вот ссылка:
По поводу моей публикации
Важно:
Вопросы интеграции не являются ключевыми, но они там раскрыты.
Возможно Вам они будут интересны.
По ссылке ниже можно увидеть подробное описание
Спасибо.
Доброе время суток!
Изменены файлы поставки.
Текущие измнения:
Версия 8.1.1.3 от 22.04.013:
1) Часть функционала из модуля объекта плана обмена «ОбменДаннымиCOM» перенесена в новый общий модуль «COMУзел»
(для совместимости с видимостью контекстов в управляемом приложении) с сохранением обратной совместимости;
2) В список стандартных настроек плана обмена добавлены настройки для работы с операционной системой через объект «WScript.Shell»
В форме автозаполнения добавлено заполнение стандартных узлов с кодами «WSH.Run» и «WSH.Exec»;
3) Реализована возможность подключения-отключения к источнику данных на стороне сервера с инициализацией (передачей управления)
со стороны клиента (для выполнения на стороне сервера некоторых действий: например, включения-выключения VPN-соединений);
Всем доброго времени суток!
—
Обновлены файлы поставки.
Текущие изменения:
Подправлено преобразование типа ADO «adDate» в тип 1С.
Для исправления достаточно в общем модуле «COMОбмен» в строке № 706
заменить ЧастиДаты.Дата на ЧастиДаты.ДатаВремя.
Огромное спасибо автору подсистемы! Хорошее оформление кода и описание помогли быстро разобраться.
Путем частичного заимствования кода из нее в подсистеме «Инструменты разработчика» внедрена начальная поддержка ADO (консоль запросов и конструктор запроса). Подробнеездесь
Всем здравствуйте. Оговорюсь сразу, в 1с я новичок и поэтому возникает множество вопросов. Один из них заключается в следующем:
У меня есть функция которая считает количество дней между 2-мя датами
Показать
Проверял запрос через консоль запросов. Все работает нормально.
В форме справочника есть поле: Длительность обучения в днях. В этом поле я пытаюсь отобразить результат функции описанной выше, делаю это следующим образом:
Но ничего не происходит. Хотелось бы узнать, как правильно вызвать эту функцию, чтобы в этом поле отображался корректный результат. Надеюсь на Вас, гуру 1с))
(31) pashtet99,
Твоя функция возвращает не число дней между двумя датами,
а некоторое значение типа «РезультатЗапроса»,
при передаче которого с сервера на «управляемый» клиент должна возникнуть ошибка.
Поскольку этот тип не поддерживается на клиенте.
(32)
насколько я понял задачу,
функция должна возвращать длительность в днях
некоего «курса обучения» по ссылке из справочника.
я бы функцию написал бы так:
Показать
(33)Вот я создаю некий курс обучения, указываю его название, стоимость и период обучения, и вот после того, как я указал период обучения, количество дней, в этом периоде, должно передаться в поле надписи Длительность обучения в днях
(31) pashtet99,
ну … проще надо все делать — примерно так:
разность двух дат — это время в секундах
А я делал так, оно не учитывает почему-то саму дату НачалоОбучения и КонецОбучения
(35)
можно конечно и запросом посчитать,
тогда в функцию надо передать даты:
Показать
(37) Это вроде бы и понятно, мне просто интересно как вызвать эту функцию, чтобы присвоить ее результат нужному полю?
(37)
обрати внимание на директиву
&НаСервереБезКонтекста —
— ее лучше использовать если тебе на сервере не нужен контекст(данные) формы,
а только переданные через аргумент параметры.
(39)Спасибо, разобрался))
(38) pashtet99,
У тебя на ту надпись точно выведен реквизит ДлительностьОбучения ?
Проверь путь к данным (мало ли что)…
И я бы написал просто
не через ссылку на объект текущей формы…хотя это должно быть все-равно.
Всем доброго времени суток!
http://infostart.ru/public/225570/ .
«ViewValues» для его «просмотра».
http://infostart.ru/public/100967/ ), требуемая версия не ниже 5.6.
Обновлены файлы поставки.
Текущие изменения:
Версии: 8.1.1.4 (для 8.1) и 8.2.1.4 (для 8.2) от 01.03.2014:
1) Набор прав SA для усиленного контроля «полного доступа» к базе,
описанного в
Используется для контроля доступа к обработке «КонсольЗапросов1СADO»
2) Автономная подсистема «Произвольные фоновые и регламентные задания» (бетта-версия).
3) Дальнейшее развитие функционала обработки «КонсольЗапросов1СADO»:
версия консоли: 8.1.1.3 от 01.03.2014:
1. Реорганизация структуры данных и алгоритмов обработки для обеспечения совместимости с управляемым приложением.
2. Вынос функционала обработки выборки запроса из модуля формы «ОбработкаВыборки» в модуль объекта.
3. Обработка выделенных строк таблицы результата запроса в форме «ОбработкаВыборки».
4. Вывод времени выполнения и отображение статуса обработки строк в форме «ОбработкаВыборки».
5. Контроль ссылочной целостности при непосредственном удалении объектов в форме «ОбработкаВыборки».
6. Новые шаблоны заполнения для обработки выборки запроса —
— «Обработка табличной части» и «Обработка движений регистратора».
7. Сохранение результата запроса во внешнем файле (*.obj8).
8. «Загрузка» в результат запроса объекта 1С (таблицы/дерева значений), сохраненного во внешнем файле (*.obj8).
9. «Загрузка» в результат запроса списка помеченных на удаление объектов;
10. «Загрузка» в результат запроса таблицы ссылок на список объектов, полученных при выполнении другого запроса;
11. Запрос в режиме «Консоль кода» с показом результатов вычислений в табло значений (в «результате» запроса);
12. Заполнение дерева запросов по переданному объекту «Запрос» — используется подсистемой
13. Масса интерфейсных улучшений (в том числе список последних открытых файлов запросов).
14. Интеграция с обработкой 1С:Администратор (
Хороший инструмент. Спасибо!
Добрый день! Судя по скриншотам к публикации вы использовали удаленное подключение к компьютеру, на котором установлен ЭТРАН. Не подскажите, какие настройки делали на обеих сторонах, чтобы это заработало (я имею ввиду регистрацию компоненты EtranASUGO в виде COM сервера и т.п.)
Заранее спасибо.
(44) romzat,
Давно уже это было!
В той конторе уж год как не работаю.
Ситуация там была такая:
Сам ЭТРАН был установлен на одном ноуте, постоянно находившемся сети.
Установкой и регистрацией ЭТРАНА на том ноуте я не занимался.
Это делали админы.
Я организовал доступ из 1С через COM к ЭТРАНУ на том ноуте.
При создании COM-объекта в этой ситуации приходилось в конструкторе объекта
во втором аргументе указывать сетевой путь к ноуту с ЭТРАНОМ:
(45)
Если использовать для хранения настроек соединения узел плана обмена «ОбменДаннымиCOM»
то настройки должны быть примерно как на скриншоте
Про этран
Он работает на машинах со специальным VPN
потому разрабатывая архитектуру учтите — надо коннектится к машине «клиенту Этрана», для вас это будет сервер.
Но Асуго — это мертвое дитя, сейчас уже пора бользоваться SOAP
Текущие допилы в тестировании
(48) а пароль?