Архив рубрики: Работа с конфигуратором

о конфигурировании, изменении настроек запуска и работы баз, внесении изменений в конфигурацию, настройки пользователей

REST сервис для 1С 7.7

Обычно все современные приложения, так или иначе, способны общаться с внешним миром, а особо продвинутые могут общаться через веб-технологии. Как оказалось, даже такую, устаревшую по современным меркам платформу, как 1С:Предприятие 7.7 возможно научить работать с полноценными Http запросами. Здесь я приведу пример внедрения максимально простого варианта REST сервиса для того чтобы понять сам принцип его запуска и работы. В целом система состоит из следующих компонент:

  • сервер приложений Apache-Tomcat, он принимает http запрос и запускает сервлет
  • сервлет, написанный на Java, который при получении http запроса запускает 1С через COM-объект, получает выборку данных, форматирует ответ в формате JSON и отправляет назад
  • Java-библиотека для обращения сервлета к 1С – Jawin
  • 1С:Предприятие 7.7, в конфигурацию необходимо внести дополнения – функции, через которые сервлет будет получать данные и выполнять нужные операции

Постараюсь описать по шагам, как заставить всё это работать вместе.

Читать далее

Подключение MG-T707TS к 1С 7.7

Отличительной особенностью кассового аппарата MG-T707TS является его способность работать без использования специального OLE драйвера, как это обычно делается в 1С. Вместо драйвера можно использовать протокол Http – внутри кассового аппарата работает Web-сервер, к которому можно обращаться через локальную сеть с помощью Get и Post запросов. В 1С версий 8.х можно все операции провести встроенными средствами, а вот в “семерке” встроенных средств не хватает, но это легко обходится компонентами, доступными в Windows-среде.

Читать далее

Отправка PUSH сообщений

Это заметка о том, как отправить PUSH сообщение из 1С на Андроид-устойство с использованием сервиса Firebase Cloud Messaging.

  • если нужно отправить сообщение на определенное устройство, понадобится его токен – он формируется сервисом FirebaseMessagingService, его нужно прочитать в приложении и передать на сервер для последующего использования
  • понадобится ключ API приложения, его можно найти в параметрах проекта в Firebase Console, на вкладке Cloud Messaging
  • используя токен и ключ нужно составить и отправить на сервер службы сообщений POST-запрос.
Читать далее

Расчет алиментов

В типовой конфигурации “Бухгалтерия для Украины” есть возможность настроить автоматический расчет и удержание алиментов. Если способ расчета указан “Процентом”, то в качестве базы для расчета берется начисленный доход, в то время как правильным было-бы облагать процентом фактический доход, т.е. начисленный минус удержания. Что нужно сделать:

  1. В общем модуле ПроведениеРасчетов в процедуре РассчитатьЗаписиРегистраРасчета, перед вызовом функции получения исходных данных для расчета ПолучитьДанныеДляРасчета, добавить в структуру НеобходимыеДанные параметр ИсчисленныйНДФЛ. НеобходимыеДанные.Вставить(“ИсчисленныйНДФЛ”,Истина);
  2. В теле функции ПолучитьДанныеДляРасчета пришлось исправить текст запроса ИсчисленныйНДФЛТекст, в нем просто все обращения к реквизиту ФизЛицо нужно заменить на Сотрудник.
  3. В процедуре РасчитатьЗаписьРегистраРасчета, в структуре ИсходныеДанные теперь будет доступна сумма рассчитанного НДФЛ с военным сбором, а в Переменной ВидРасчета есть признак того, что наш расчет является именно алиментами – ВидРасчета.ЭтоАлименты. Остается только вычесть из базы начисленные налоги перед применением процента.

Расчет зарплаты

В конфигурации “Бухгалтерия для Ураины”, редакция 2.0, при подсчете количества часов не учитываются предпраздничные дни. Простой способ исправить ситуацию:

Модуль РасчетЗарплатыБазовый
Функция РабочихДнейЧасовВПериоде
было: РабочихДнейЧасов.Часов = РабочиеДни * 8 + ПредпраздничныеДни * 8;
нужно: РабочихДнейЧасов.Часов = РабочиеДни * 8 + ПредпраздничныеДни * 7;
Читать далее

Предопределенные элементы

В распределенной базе 1с версии 8.2 возникла следующая проблема: при обмене в результате какого-то сбоя появились дубликаты предопределнных элементов в плане характеристик, т.е. все записи имели двойника, все были отмечены как “предопределнный”, имели одинаковый код и т.д. Пытаясь вылечить этот глюк я узнал интересную особенность этих элементов – при удалении такого элемента в базе, что можно сделать только программным способом, он больше не появляется в списке элементов, хотя и присутствует в конфигурации. Получается, что исправить эту ошибку можно только манипуляциями в базе данных, но не манипуляциями в конфигураторе.
Читать далее

Как запретить печать или копирование отчета

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

  • отключить в роли пользователя свойство “Вывод”, это будет работать глобально, для всей программы;
  • у конкретного отчета или печатной формы документа при формировании табличного документа установить свойство “Вывод”, пример: ТабДок.Вывод = ИспользованиеВывода.Запретить;
  • если отчет создан с использованием СКД можно установить свойство элемента формы “Результат”, для этого нужно создать саму форму, если ее нет, и в процедуре ПриОткрытии() добавить такой код: Элементы.Результат.Вывод = ИспользованиеВывода.Запретить;

Можно использовать обратные варианты наложения разрешений, например, пользователю нужно запретить любой вывод, но разрешить какой-то отчет, для этого в роль пользователя нужно запретить “Вывод”, а в отчете установить значение вывода ИспользованиеВывода.Разрешить.

Как ограничить пользователя одним сеансом

В восьмой версии 1С нет штатного способа ограничить пользователя использованием только одного сеанса, это сделано потому что теперь при необходимости система может создавать от имени пользователя дополнительные сеансы в которых выполняются какие-то вспомогательные обработки. Например, когда формируется отчет, обработка данных происходит в фоновом задании, которое видно в списке активных пользователей отдельной строкой. С другой стороны это дает возможность пользователям открывать окно приложения несколько раз, на одном или разных компьютерах. Чтобы бороться с этим нужно применять программные методы. Читать далее

Обращение к аппарату Мини Т400 через OLE сервер

Почему-то в тех файлах, которые предлагает производитель, четкой инструкции применительно к 1С нет, поэтому оставляю эту шпаргалку. Название COM объекта взято из реестра, его сформировала dll при регистрации в системе, остальные команды описаны в руководстве программиста. Код проверен на версии ecrT400.dll – 1.0.4.515, 1С версии 8.2.16.362.

Читать далее

Установка сканера штрихкода

Штрихкод Эта статья – небольшая справка о том, как работает сканер штрихкода в связке с 1С версии 8.2 в режиме управляемого приложения. Для того, чтобы в 1С “словить” событие получения штрихкода со сканера, в системе, на которой запущен клиент 1С должен быть установлен драйвер сканера. Тут я расскажу как настроить работу сканера, когда 1С работает в режиме толстого или тонкого клиента. Работа веб-клиента пока мной не изучена.

Итак, первое, что нужно сделать – установить драйвер. Мне нравятся драйверы АТОЛ – легко настраиваются, стабильно работают, старые версии бесплатны. Для работы со сканером подойдет драйвер, который можно найти на диске ИТС, его версия: 5.8.3.262. Интересной особенностью восьмой платформы 1С является то, что теперь файлы дистрибутива драйвера можно хранить в составе конфигурации, программно проверить, установлены ли они в системе и при необходимости запустить их установку.

Читать далее