Что изменилось?

При сохранении объекта, справочника или документа, в его модуле, в процедуре ПередЗаписью можно легко определить, какие реквизиты объекта изменились. Для этого достаточно сравнить значение по идентификатору со значением через Ссылку. Например, узнаем, что изменилась группа элемента справочника:

Если Родитель <> Ссылка.Родитель Тогда

...

Не обновляется M.E.Doc

Обычно это связано с переносом Медка из одного места в другое без переустановки. В этом случае при попытке автоматического обновления или при обновлении вручную получим сообщение об ошибке: “Не знайдено жодної встановленної програми”. Утилита обновления проверяет наличие программы по ключу в реестре. Т.е. для решения проблемы необходимо добавить в реестр раздел с правильным путем к каталогу Медка. Вот содержимое файла реестра (сохранить текст в файле с расширением .reg и запустить):

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\IntellectService]

[HKEY_LOCAL_MACHINE\SOFTWARE\IntellectService\BusinessDoc1]
"PATH"="C:\\ProgramData\\Medoc\\Medoc"
"ServiceName"="-1"
"Port"="-1"
"Type"="FB"

Читать далее

Весы Штрих-М: порт занят другим приложением

Если при попытке загрузить товары в весы Штрих-М через драйвер, получаем ошибку “-19: UDP-порт занят другим приложением”, то скорее всего это означает, что пользователей, пытающихся связаться с весами несколько, а настройки соединения у них одинаковые. Чтобы исправить ситуацию нужно открыть настройки драйвера, в поле “UDP порт отправителя” выставить разные значения для каждого пользователя. По умолчанию это порт 2000, можно присвоить значения 2001, 2002 и т.д.

Коды ошибок HTTP

При работе с веб-сервисами 1С, в процессе отладки, удобно сразу понимать, в каком месте что-то пошло не так. Если данные через сервис совсем не проходят, обычно можно понять причину в логе веб-сервера. При использовании Apache лог находится в файле \logs\access.log
Нормальный запрос от клиента выглядит примерно так:
46.211.159.63 - - [23/May/2017:11:41:22 +0300] "POST /base/ws/AgentExchange HTTP/1.1" 200 321
В этой строке виден ip адрес клиента, время, имя веб-сервиса “AgentExchange”, код ответа – “200”

Коды ответов при ошибках:
500 – ошибка обращения к веб-сервису, обычно из-за нарушения прав доступа в 1С
401 – ошибка авторизации в 1С

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

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

Стикер-пак для 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))
КОНЕЦ