Архив автора: Руслан Хут

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

Читать далее

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

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

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

Язык платформы в Ubuntu

Чтобы запустить 1С с нужным языком интерфейса в Ubuntu можно отредактировать ярлык запуска: в папке пользователя ~/.local/share/applications/1cestart.desktop в строку Exec нужно добавить параметр “/L uk” или “/L ru” например.

Но! Стандарнтый ярлык запуска, с именем 1cestart.desktop переписывается после каждого запуска 1с, по этому лучше сделать копию ярлыка и в ней прописать нужный ключ языка.

Не найдено ни одного принтера

В Windows 2008 R2 при попытке подключения к сетевому принтеру выводится сообщение “Не найдено ни одного принтера”, хотя сетевые ресурсы и принтер в том числе видны в проводнике при обзоре сети. Если попытаться установить принтер через локальный порт, указав адрес вручную, выводится ошибка “Отказано в доступе”. Также примечательно, что другие компьютеры в сети подключаются и работают с этим принтером без проблем, т.е. источник проблемы – система, из которой происходит попытка подключения.

Для устранения проблемы необходимо удалить содержимое ветки в реестре:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Print\Providers

Сообщение об ошибке на английском: “No printers were found”, код ошибки: 0x00000bc4.

 

Ошибка формата потока

Еще один способ вылечить базу при появлении сообщения “Ошибка формата потока”. Если база работает в формате SQL и возможности зайти в режим конфигуратора нет, то можно откатить изменения в конфигурации, скопировав рабочую версию конфигурации из резервной копии. Конфигурация хранится в таблице dbo.Config, т.е. достаточно выполнить скрипт:

USE [MyDB]
GO
DELETE FROM [MyDB].[dbo].[Config]
GO
INSERT INTO [MyDB].[dbo].[Config] SELECT * FROM [MyDBcopy].[dbo].[Config]
GO

Здесь MyDB – поврежденная база, MyDBcopy – рабочая резервная копия.

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

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

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

Ошибка установки

Если при установке программы появляется сообщение об ошибке “A previous program installation created pending file operations…” и установка прерывается, а перезагрузка компьютера проблему не решает, нужно проверить содержимое реестра:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager

В этой ветке найти параметр PendingFileRenameOperations и удалить его. Также могут быть такие-же параметры в ветках CurrentControlSet001, CurrentControlSet002 и т.п.

Не удается войти

Пользователям удаленного рабочего стола не удается войти на сервер, после того как на нем “поработал” шифровальщик. Сообщение сервера при входе:

Служба профилей пользователей препятствует входу в систему

Оказалось, что повреждены файлы профиля “по умолчанию”, это папка Default в каталоге, где лежат профили пользователей, обычно C:\Users . В этой папке необходимо восстановить файл NTUSER.DAT, который можно взять из профиля Гостя или с другого компьютера.