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

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

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

В последней версии конфигурации “Бухгалтерский учет для Украины” 1.2.48.1 для получения в расчете суммы уже рассчитанного НДФЛ пришлось немного сложнее поправить запрос – нужно убрать инструкцию ИНДЕКСИРОВАТЬ. Полный текст запроса ниже, полное описание правок тут: ссылка.

Читать далее

Пример функции для вычисления MD5 hash

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

Читать далее

Ошибка обмена: конфигурация не соответствует ожидаемой

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

Манипуляции с файлом конфигурации на периферийной базе проблему не решили. В сети нашел варианты с подменой или редактированием поля Digest непосредственно в файле XML, но это обычно помогает для одной загрузки, а при следующем обмене ошибка повторяется.

Читать далее

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

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

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

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

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