Механизм использования API на javascript в 1с...
-

Механизм использования API на javascript в 1с. Пример 1С API

2
12388
05.07.2017 Роман Ефремов

В предыдущей статье "Возможности API на javascript" неоднократно  упоминалось использование API от Яндекс. В этой статье будет описан механизм использования API на javackript в 1с. Все, кто знаком с основами программирования в HTML и JavaScript, могут не читать теоретическую вводную и перейти к практической части.

Для начала хотелось бы напомнить, что для программиста не должно быть границ в виде новых языков кода и сложных задач. Новые языки программирования и сложные задачи делают нас сильнее и опытнее.

Чтобы успешно выполнить задачу по интеграции API в конфигурацию, желательно иметь начальные знания программирования HTML и JavaScript. Но если вы ими не обладаете, то краткий ликбез и листинг кода смогут вам помочь.

Если мы обратимся к документации по API Яндекс.Карты, то увидим подобный текст:


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

В приведенном выше примере видим, что в нем указан новый Тэг с названием "script", который предполагает нахождения в нем или команды к выполнению, или адрес на код, который будет необходимо реализовать. Как и указанно в документации к API, скрипт выполняет подключение карты к нашему макету в 1С. Что же нам нужно, чтобы этот код у нас заработал? 

В первую очередь нам нужна одна обработка (можно использовать и другие объекты), один макет с типом HTML документ – именно в него мы и помещаем код. Записав код, мы выполнили первый шаг к использованию заветного, многофункционального API. Подобная методика работает и с иными API на JavaScript. 

Важно! Все открытые теги должны быть закрыты после использования. Мы же не хотим, чтобы все находящееся в нашей коробке, испортилось или пропало. Запомним это основное правило:

открыли – закрыли.

Разобравшись с тем, как устроен первый код, мы можем его разместить в наш макет. Но так как мы подключаем карты к HTML документу, по факту WEB страницы в 1С, нам необходимо объявить ее таковой. Для этого нам понадобится следующий код:


Данный тэг указывает правила для нашего HTML макета. Подробное описание вы сможете найти на сайте 


  Для того, чтобы мы могли работать с картой, передавать и получать данные, нам требуется объявить все интересующие нас процедуры и функции в теге:  <script type="text/javascript">, не забываем закрыть тэг после записи всех необходимых процедур и функций </script type>. Параметр type="text/javascript" подразумевает, что внутри тэга будет находится код JavaScript, который мы и будем вызывать в дальнейшем. Ознакомившись максимально поверхностно с HTML, нам придется «взглянуть в глаза» JavaScript. Для чтения код менее удобен, поэтому  в нем можно легко запутаться. Но страшиться не стоит. Вы справитесь. Пример кода:



Не имеет смысла подробно описывать в статье, что делает этот код, так как он расписан в документации к API, а вот синтаксис необходимо усвоить. Во-первых, "var" это оператор объявления переменной, аналог "Перем". А вот и первая процедура ymaps.ready(init). Так как мы ранее уже подключились


к пространству имен, то объект Yamaps уже хранит все необходимые нам функции, которые мы можем вызывать. Здесь, как и в 1С, мы обращаемся к подпространству имен через символ точка. Как описано на сайте по API: происходит инициализация карты, после этого мы можем творить все, что нам вздумается (в пределах разумного и соблюдая синтаксис). Но вот для того, чтобы произошла инициализация, нам необходимо описать функцию, которую мы передадим на сервер Яндекс. 

Мы создадим карту. Это Функция  function init() здесь код очень похож на 1С. Так в JavaScrit происходит объявление функций. На этом сходство заканчивается. Если 1С понимает, что после "Процедура Процедура1()" идет код процедуры, то для JavaScript требуется указать начало и конец фигурными скобками. Все, что внутри скобок {является телом (кодом функции)}. И все, что указанно внутри этого блока, мы сможем вновь же проделать на сайте с документацией. Аналогичными методами мы описываем весь код интересующий нас, и мы сможем его использовать в 1С. Только возникает вопрос: как это сделать? Здесь начинается практическая часть. Она короткая, но самая важная.

Для того, чтобы мы могли передавать и принимать данные через HTML документ, нам необходимо создать на форме Реквизит с типом HTML документ и использовать подобный код при открытии формы:



 
После чего наш HTML документ на форме будет связан с макетом и будет передавать все необходимые данные. Получение результата же по средствам API будет происходить с помощью события "ondatasetcomplete" на HTML. А с помощью метода document.parentWindow.eval мы сможем отправлять команды из нашей конфигурации на сервер Яндекс.

Соответственно  код для вызова функции на сервере Яндекс будет выглядеть следующим образом: 


Где FindAdres – это имя объявленной функции, а Представление – это передаваемые данные. Для того, чтобы скрипт смог правильно прочесть строковое значение из 1С, его необходимо заключить в одинарные кавычки, как показано в примере.

В свою очередь в событии (ondatasetcomplete) мы получим результат с сервера с помощью следующего кода:

ЭлементыФормы.HTML.document.getElementById("CoordALL").value

Где (CoordALL) название переменной, хранящей интересующий нас результат. Для того, чтобы переменная получила значение с сервера в макете, нам необходимо заранее указать ее при объявлении функции:


И объявить в тэге следующим образом:




  Итак, мы имеем один макет, в котором описываем интересующие нас функции и переменные для вывода результата, и одну форму, на которой указываем код для отправления параметров и получения результата.
 


Роман Ефремов,
разработчик 1С компании ООО "Кодерлайн"

Задать вопрос автору статьи
Тема вопроса*
Ваше имя*
E-mail или телефон*
Ваш вопрос*
 

0
Дмитрий
Здравствуйте.

Набросал согласно вашей рекомендации html-макет, в котором обращаюсь к самому простому примеру из Яндекс карт (API 2.1) - просто отобразить карту Москвы. Ключ на использование сервиса получил и проверил на тестовой веб-странице - все работает.
Создал отчет в полем HTMLДокумента. Создал процедуру ПриОткрытии(). Однако при запуске отчета карта не выводится.
Как я понял, загвоздка в строке ymaps.ready(init); В функцию init() переход не осуществляется.
Пробовал и в обычном приложении, и в управляемом - эффект одинаков.

Не подскажите, в чем проблема и что я делаю неправильно? При необходимости могу выслать конфигурацию с примером. Прошу ответить на dvkutyakov@ukr.net
Имя Цитировать 0
0
Администратор
Цитата
Дмитрий пишет:
Здравствуйте.

Набросал согласно вашей рекомендации html-макет, в котором обращаюсь к самому простому примеру из Яндекс карт (API 2.1) - просто отобразить карту Москвы. Ключ на использование сервиса получил и проверил на тестовой веб-странице - все работает.
Создал отчет в полем HTMLДокумента. Создал процедуру ПриОткрытии(). Однако при запуске отчета карта не выводится.
Как я понял, загвоздка в строке ymaps.ready(init); В функцию init() переход не осуществляется .
Пробовал и в обычном приложении, и в управляемом - эффект одинаков.

Не подскажите, в чем проблема и что я делаю неправильно? При необходимости могу выслать конфигурацию с примером. Прошу ответить на dvkutyakov@ukr.net
Добрый день. Данная статья была написана более 3 лет назад, ввиду этого есть некоторые изменения в плане написания, т.к. если ваша платформа менее версии 8.3.15. то используется html документ как компонента в режиме совместимости internet explorer 7 (Яндекс уже не поддерживает около года). Решением является изменение режима совместимости до версии ie 10(Правится через реестр windows) Если платформа выше 8.3.15.то в данном случае "движком" html документа является движок WebKit. И его методы немного отличаются. Для более детальной информации вы можете обратится на линию консультации по телефонам, указанным в верхней части сайта
Имя Цитировать 0
Добавить комментарий
Текст сообщения*
Защита от автоматических сообщений
 
Теги
# абота Риелторского Агентства # Управление торговлей 11 #Забалансовый счет #Контекстное меню #Параметры запуска #Работа Риелторского Агентства # 1C # CRM-система # Cинтаксис-помощник # Cинхронные методы работы # Cправочник номенклатуры # PDF документами # PowerShell # XML-файл # Бизнес-процесс # Виды событий оповещения # Возврат товаров # Глубина анализа # Графические объекты # Динамический список # Документ заказ клиентов # Документ заполнен # Документ Отбор (размещение) товаров # Документ Отгрузка товаров ИС МП # Документ Приобретение товаров и услуг # Документ УПД # Документы продажи # Доступ на ТСД # ДтКт # ЕАЭС # Задержка зарплаты работодателем # Заказ на перемещение # Закладка Администрирование # Зарплата и кадры # Имя таблицы # ИТС # Кабель NYM(Севкабель) 3x5.5 # Книга учета доходов и расходов # Курс валюты # Лицо с правом подписи # Лицо, имеющее право подписи документов # Маркировка цифровыми кодами # Минимальные цены продажи в 1С # Настройка НСИ и разделов # Настройка ценообразования # НДФЛ # Нематериальные активы # Нормативно-правовые документы # Обмен электронными документами # Оплата через банк # Оптовые продажи # Основное ответственное лицо организации # Остаток товара на складе # Отчет комиссионера # Передача на комиссию # Перемещение ТС и оборудования # Проведение инструктажа # Продажи или Закупки # Прочие доходы # Пункт Подключить обработки # Пункт Сервис # ПФР и ФФОМС # Работа ТС # Расчёт зарплаты # Расчет налога УСН # Расчетные счета # Режим использования модальности # Система «Честный знак» # Система GS1 # Списание на расходы # Справка-расчет налога УСН # Страховые взносы # Табель учёта рабочего времени # Таблица формы # Таблица формы «Сотрудники» # Товары # Установка цен на товары # Формат Цифровой Маркировки # Форматированное письмо # Функция Дата # Функция ДеньГода # Функция ДеньНедели # Центральный Банк России # Цены номенклатуры 2.5 # Эквайринговый терминал # Элементы #1.6-НДФЛ #1С Бухгалтерия #1С Договоры #1С: CRM #1С: ERP #1С: ERP Управление строительной организацией #1С: ERP. Управление буровой компанией #1С: WMS Управление складом #1С: Аренда и управление недвижимостью #1С: БУХ #1С: Договорчики #1С: Документооборот #1С: ЗУП #1С: Интеграция #1С: КА #1С: Колледж #1С: Конвертация данных #1С: Модули #1С: Платформа #1С: Предприятие #1С: Розница #1С: Сценарное тестирование #1С: ТОИР #1С: УАТ #1С: УКФ #1С: Университет #1С: УНФ #1С: УПП #1С: Управление строительной организацией #1С: УТ #1С: УХ #1С:ERP #1С:БГУ #1С:БП #1С:Риелтор #1С:Управление холдингом #1С.6-НДФЛ #ADO #APACHE #API #canonical #com-объекты #Cинтаксис-помощник #Cопроводительных документов #Cправочник БИК #Excel #Excel в 1С #FTP-сервер #GoogleDrive #Googleаккаунт #GUID #HTTP #ITIL #Koderline: Управление медиа-холдингом #Koderline: Управление проектами строительства скважин #LINUX #MS SQL Server #PDF #ragent.exe #SOAP-протокол #USB- ключ #WEB #WEB-сервисы 1С #Word #WS-ссылки #XDTO-объект #XML #XML-обмен #Авансовый платеж #Администрирование 1С #Адрес URL описания #Адресный классификатор #акты в 1С #Аппаратная часть сервера #Аутентификации операционной системы #База XML #База данных #Балансовый метод #Балансовый расчет #Банковские счета #Безопасность сервера #Бесшовная интеграция #Бизнес-процесс #БИТ.Финанc #Битрикс24 #Блокировка данных #Блокировки в 1С #БСП #БУ #Бурение скважин #Бухгалтерская отчётность в МСФО #Бухгалтерский отчет #Бюджетирование #Валовая прибыль #Ввод команд #Ввод пароля #Ввоз товаров #Веб-сервер #Веб-сервер Apache #Вид договора #Вид тарифа #Вид Характеристики #Вкладка Документы #Внедрение #Внедрение ERP #Внесение правок #Внешний вид формы #Внешнюю обработку #Возврат от покупателя #Восстановление данных #Временные разницы #Временные таблицы #Всплывающие ошибки #Выбор каталога #Выбранные файлы #Вызов процедуры #Выпадающий список #Выплата аванса #Выплата отпускных сотруднику #Выполнение запроса #Выполнение кода #Выполнение транзакций #График отпусков #ГТД #Данные сотрудника #Дата действия договора #Дата документа #Движение документа #Декларация по НДС #Диагностика ошибки #Директория сервера #Дистрибутивы программ #Документ Заказ клиента #Документ Отпуск #Документ1 #Дополнительный оплачиваемый отпуск #Доработка конфигурации #Доступ к файлам #Журнал проводок #Журнал регистрации #Журнал транзакций #Журналы #Загрузить Значения #Загрузка цен в 1С #Задача для 1С #Заказ-наряд #Закладка Торговля #Закрытие месяца #Закрытие сделки #Заменить #Запись регистра сведений #Заполнения полей #Запросы 1С #Заработная плата #Зарплата и управление персоналом #Импорт товара #Имущество предприятия #инвентаризационная опись #Инвентаризация склада #Интеграционный банк-клиент #Интеграция 1С #Интервал dpi #Интерпретатор языка #Интерфейс пользователя #Информационная база #История пользователя #Источник данных #ИТС ТЕХНО #Кадровые документы #Кадровый документ #КАК ОТРАЖАЮТСЯ ТОВАРЫ В ПУТИ 1С #Как сделать в 1С #Карточка должности #Карточка номенклатуры #Карточка Объекта недвижимости #Касса ККМ #Кассовый документ #Квалификационные надбавки #Классификаторы и курсы валют #Классификаторы и курсы валют #Клиент-серверная схема #Клиент-серверный режим #Код доступа #Код ЦМТ #Код языка #Кодировка формата #Команда вызова #Командная строка #Конвертация данных #Контроль документов #Конфигурация 1С #Конфигурация 1С ЗУП 3.1 #Конфигурация системы 1С #Копирование настроек пользователей #Корпоративное сопровождение #Корректировка базы данных #Корректировка расчётов с учредителем #Криптография данных #Критерии отбора документов #Курс валюты #Курсовые разницы #Левое соединение #Лизинг #Лимит стоимости #Лицензии 1С #Лицензионный договор #Лицензия 1С КОРП #Лицензия 1С ПРОФ #Личные документы #Локальный каталог #Маркетинговая акция #Массив Номенклатур #Массовая регистрация отгулов #Меню Отчет #Место хранения #Метод объекта #Метод устранения ошибки #Методы устранения ошибки #Механизм Анализа Данных в 1С #Механизм записи #Мобильное приложение #Мобильный клиент #Моделирование #Модель данных #Модуль Диадок #Монопольный режим #МРОТ #МСФО #Налоги #Налоговая декларация #Налоговый актив #Налоговый регистр #Налоговый учет #Написание запроса #Настройка отчета #Настройка панели #Настройка параметров #Настройка пользователя #Настройка системы #Настройки пользователя по умолчанию #Начальная таблица #Начисления Арендной платы #Неверные данные #Новый Массив #Норма времени #Нормативно-справочная информация #Облачный сервис #Обмен между базами #Обмен сведениями #Обновления #Обособленное подразделение #Обработка проведения документов #Общие ознакомительные рассылки #Объект системы #Объективность информации #Объектная база данных #Окно сообщений #Оперативная аналитика #Операции в 1С #Оплата агента #Оплата по квитанции #Оплата труда #Оповещение по видам события #Оптимизация #Организация #Организация хранения #ОС и НМА #Основное окно #Основное средство #Остатки взаиморасчетов #Остатки товаров на складах #Остаток товара #Отпуск #Отчет комитенту #Отчетность #Отчетный период #Отчеты в 1С #Оформление документа #Оформление перевода работника #Охрана труда #Оценка задач #Панель инструментов #Параллельный учет #Параметр «Количество» #Параметры отбора #Параметры подключения #Партнер #Перевод сотрудника #Передача данных #Передача неисключительных прав #Перемещение отчета #Перенос данных #Перенос цен из Excel в 1С #Перечисление денежных средств #Период отбора #Периодичность ДЕНЬ #Периодичность МЕСЯЦ #Печатная форма #Печатная форма документа #План счетов #Планирование #Планировать события #Платежный документ #Погашение обязательств #Подчиненный справочник #Поле Ввода Значение Субконто #Полезные обработки #Политика учета #Пользователь Администратор #Пользовательский режим #Поступление денежных средств #Поступление основных средств #Поступление основных средств #Потенциальный контрагент #Права доступа #Правила обмена #Правое соединение #предопределенные элементы справочников #Прием на работу #Принцип работы 1С #Приходная накладная #Приходно-кассовый ордер #Проведение документов #Проведение инвентаризации #Проводки 1С #Проводок документации #Программа 1С #Программирование в 1С #Программные права #Программный код #Продажа маркированной продукции #Продажа ТМЦ #Продажа товара #Продажи #Продление #Производственный план #Производство #Просмотр #Процедура и функция #Пункт «Касса» #Путь к файлу #Работа с объектами в 1С #Рабочий сервер #Раздел Справочники #Расположение ссылки #Расторжение #Расходная накладная #Расходный ордер #Расходы по амортизации #Расчет зарплаты #Расчет НДФЛ #Расчетные документы #Расширение конфигурации #Расширение прав доступа #Расширение функционала #Регистр бухгалтерского учета #Регистр бухучета #Регистр данных #Регистры бухгалтерии #Регистры движения документов #Регламентированная отчетность #Регламентное задание #Режим записи #Режим использования модальности #Режим конфигуратор #Режим налогообложения #Режим РИБ #Резерв отпусков #Результаты поиска #Реквизит «СпЗнч» #РМК #РМК кассира #РСБУ #С # #Сверка данных учёта НДС #Свойства характеристики номенклатуры #Свойство ячейки таблицы #Сдельный заработок #Сеанс Администратор #Сегмент номенклатуры #Сервис-деск #Сетевой ключ защиты #Сетевой ключ защиты #Сетевые структуры системы #СЗВ-СТАЖ #Синхронизация данных #Система программы #СКД #Служба ИТ #Служба НСИ #Соединение COM в 1С платформе #Соединение СОМ в 1С платформе #Спецификация на товар #Список документа #Список документов #Список номенклатуры #Список прав #Справочник Лиды #Сравнение конфигураций #Строка «Касса (ККМ)» #Сумма налога #Схема отчетности #Счет-фактура #Табличная часть #Табличная часть обработки #Таможенные пошлины #Текстовый формат #Текущая Строка #Территориальная привязка #Территориальные рамки #Тестирование 1С #Техническое задание #Тип данных #Тип свойства #Тип строки #Типы данных ссылки #Толстый клиент #Тонкий клиент #Торговое оборудование #Транспортная логистика #Увольнение сотрудника #Универсальные коллекции #Управление проектами #Управленческое взаимодействие #Условие предоставления скидки #Условия труда #Установка цен номенклатуры #Учет зарплаты #Учетная политика организации #Файл обмена данными #Файловая база #Файлы обмена #Физический ключ #Финансовый результат #Финансовый учет #Форма ввода #Форма выбора элемента #Форма файла XML #Формат MicrosoftExcel #Формат даты #Формат потока #Формирование отчета #Формирование отчета #Функционал МРМ #Х-точка #Характеристики Товаров #Хранение информации #Хранилище настроек #Хранить историю изменений #Ценообразование #Центральный узел #Чтение #Шаблон обновления #Шапка отчета #Эквайринговая операция #Экзамен 1С #Экспорт товаров #Экспортная процедура #Электронная подпись #электронные подписи #элемент справочника #Элемент языка #Язык программирования #Яндекс-диск или Google-диск #Яндекс.Касса 1С под Linux 1С:УНФ Email или телефон Работа с объектами в 1С тип да Функциональные опции в 1С
Услуги программиста 1С
Получите специалиста  
для решения всех задач
в области 1С
Программы 1С
Цены и подробное описание программ 1С:Предприятие 8.