Архивы

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

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

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

...

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    Копирование таблицы в MS SQL

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

    SQL запрос

    SQL запрос


    Здесь из базы с именем torgcopy в базу torg копируется таблица _Reference649. Особенность выполнения инструкции INTO в том, что копирование производится только в новую таблицу. В моем случае в базе torg уже была таблица с таким именем, по этому в запросе я копировал в таблицу с именем _Reference649new. Если нужно заменить таблицу её копией, можно просто переименовать таблицы после копирования.