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

Набор стикеров для мессенджера Телеграм

Авторские стикеры от Программера, пользуйтесь наздоровье.

Стикер-пак для Telegram

Стикер-пак для Telegram


Для установки откройте в Телеграме эту ссылку.

Резервное копирование информационных баз данных 1С:Предприятия по расписанию

Немало админов пускают резервное копирование на самотек, выполняя бэкапы время от времени, но к сожалению есть много непредвиденных факторов, которые могут привести к полной или частичной потери данных: вирусы, выход из строя жесткого диска где хранится информационная база, не удачное обновление конфигурации …. и от такого исхода никто не застрахован. Когда случаются выше упомянутые ситуации, администратор сожалеет что своевременно не провел резервное копирование и дает себе обещание впредь осуществлять бэкапы регулярно.
Применяя программу Effector saver можно организовать простой, удобный и эффективный способ автоматического резервного копирования баз данных 1С, тем самым программа упростит работу администраторов и защитит пользователей 1С:Предприятия от случайного удаления или потери корпоративных данных.
Читать далее

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

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

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

Бета-тест программы Агент

Агент. Приложение для торговых представителей

Агент. Приложение для торговых представителей

С сегодняшнего дня доступна для тестирования бета-версия андроид-приложения, которое будет обмениваться информацией с учетной системой в 1С.
Сейчас работают такие функции: загрузка списка товаров с ценами и остатками, загрузка списка клиентов с долгами, набор заявки клиента, отправка заявки в 1С.
Для установки приложения нужно пройти по ссылке: Вход для тестировщиков, там будет доступна ссылка на маркет. В самом приложении, в настройках подключения нужно ввести адрес сервера «demo» и имя базы «demo».
В целях тестирования будем пробовать обмен с базой 1С «Простой учет»: вход в веб-интерфейс. Логин «Пользователь», без пароля.
Общие правила для тестировщиков таковы: нажимать и вводить что угодно, как угодно, но при возникновении сбоя обязательно отправлять отчет если это предложит сама система или оставить отзыв в маркете.
Группа в Телеграме для обсуждения программы: ссылка.

Sic С 7 февраля 2017 бета-тестирование окончено, программа доступна в плей-маркете

Обращение к веб-сервису 1С из Android-приложения

Небольшая шпаргалка о том, как взаимодействовать из Андроида с базой 1С. Предполагается, что в 1С уже описан веб-сервис и он опубликован. В моем случае использована база на платформе 8.3, управляемые формы, веб-сервер Apache 2.2, 1С и Апач расположены на одном сервере под управлением Windows 2008 R2.
Для работы с веб-сервисами в Android используется библиотека KSoap2, на момент написания этой заметки файл для импорта в проект назывался так:

ksoap2-android-assembly-3.6.2-jar-with-dependencies.jar

Для вызова понадобятся несколько ключевых параметров:

private static final String NAMESPACE = "www.URI.com";
private static final String URL = "http://***.***.***.***/kk-base/ws/AgentExchange";
private static final String SOAP_ACTION = "www.URI.com#AgentExchange";
private static final String USER_PASSWORD = "ИмяПользователя:Пароль";

NAMESPACE — пространство имен, задается в конфигураторе 1С, непосредственно в свойствах веб-сервиса
URL — состоит из адреса сервера, на котором опубликована конфигурация, имени конфигурации, которое задано при публикации и имени веб-сервиса: http://< адрес сервера>/< имя конфигурации>/ws/< имя веб-сервиса>
SOAP_ACTION — имя команды сервиса, состоит из имени пространства имен и имени сервиса; во всех примерах в это имя еще включают имя самой операции, т.е. метода, если смотреть в конфигурации 1С, но у меня работает без него, возможно это «фишка» сервиса в 1С: < пространство имен>#< имя веб-сервиса>[:< имя операции>]
USER_PASSWORD — строка из имени и пароля пользователя, как они заданы для авторизации в 1С

Читать далее

Целое число в запросе

Для округления чисел в запросе необходимо применять функцию ВЫРАЗИТЬ, для отсечения дробной части придется использовать конструкцию ВЫБОР.

Пример округления до целого:

ВЫРАЗИТЬ(ЦеныМагазина.Цена КАК ЧИСЛО(12, 0))

Пример получения целой части (отсечение дробной):

ВЫБОР
КОГДА (ВЫРАЗИТЬ(ЦеныМагазина.Цена КАК ЧИСЛО(12, 0))) > ЦеныМагазина.Цена
ТОГДА (ВЫРАЗИТЬ(ЦеныМагазина.Цена КАК ЧИСЛО(12, 0))) - 1
ИНАЧЕ ВЫРАЗИТЬ(ЦеныМагазина.Цена КАК ЧИСЛО(12, 0))
КОНЕЦ

Конфигурация не соответсвует ожидаемой. Опять

Кроме решения, о котором я писал раньше появилось одно уточнение. Подобная ошибка может появиться в случае использования разных версий платформы на узлах распределенной базы. В моем случае на центральной базе была версия 8.3.4, а периферийную базу обновили до 8.3.6. Решается без каких-либо манипуляций простым обновлением баз до одинаковой версии.

ExellioFP ошибка выполнения команды

Объект: ExellioFP.FiscalPrinter
Оборудование (фискальный регистратор): Екселлио FPU-550

Столкнулся с проблемой при выполнении команды из 1С через ОЛЕ-сервер Exellio FP — тестирование проходит номально, фискальный регистратор отвечает на команды, связь есть, но при попытке выполнить команду, связанную с регистрацией продажи или выполнением отчета, получаю ошибку №7: выполнение операции запрещено для текущего фискального режима. Как оказалось, ошибка была в параметре «Пароль кассира», передаваемом в команде, было числовое значение, а нужно передавать строку. Т.е. 1С передавала пароль «0000» числом и получалось, что регистратор получал «0», а если передать строку с четырьмя нулями, то регистратор, как и ожидает, получит «0000» и ошибка не возникает. Собственно, в документации четко указано — параметр строковый, но кто-ж её читает.

Конфигурация не соответствует ожидаемой

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

  • Сделать выгрузку конфигурации на центральной базе, это та конфигурация, которую ожидает периферийная база и которую нужно будет туда загрузить.
  • На периферийной базе — отключить от главного узла обмена. Это возможно программно, для этого нужно написать обработку с одной командой: ПланыОбмена.УстановитьГлавныйУзел(Неопределено);
  • Конфигурацию периферийной базы нужно снять с поддержки, если это включено, затем объединить с конфигурацией из центральной базы, а затем выполнить загрузку конфигурации из этого-же файла. Я делаю так для того чтобы перенести признак поддержки.
  • Вернуть привязку к главному узлу обмена. Это снова можно сделать программно, только теперь нужно будет указать узел, который будет назначен главным: ПланыОбмена.УстановитьГлавныйУзел(ТекущийУзел); В переменную ТекущийУзел нужно передать элемент из плана обмена, его можно сделать полем выбора в форме обработки.
  •  

    После этих манипуляций обмен должен пройти в обычном режиме.