Архив рубрики: 1С 8.2

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

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

Читать далее

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

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

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

Читать далее

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

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

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

...

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

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

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

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

    Предопределенные элементы

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

    Проверка заполненности реквизита

    Если реквизит имеет ссылочный тип, например, справочник, то если реквизит не заполнен, будем иметь у такого реквизита значение типа “пустая ссылка”. Но если реквизит составной и в качестве возможных типов указаны, к примеру, два справочника, то у пустого реквизита будем иметь “Неопределено”. Столкнулся, когда переделывал документ и сделал одному из реквизитов составной тип – вылезли ошибки в модуле документа при проверке значений в реквизитах.

    Проверка типа в запросе

    Для того, чтобы проверить тип значения документа (а также и любой другой ссылки) в запросе, используется оператор ССЫЛКА.

    Пример текста запроса с проверкой типа документа:

    Использование оператора ССЫЛКА в запросе

    Использование оператора ССЫЛКА в запросе

    Торговля ювелирными изделиями

    Запущена в эксплуатацию конфигурация для учета торговли ювелирными изделиями. Конфигурация работает на платформе 1С:Предприятия версии 8.2 (не ниже 8.2.16) в режиме управляемого приложения.

    Рабочее окно конфигурации "Золото"

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

    Управление регламентными заданиями

    Как известно, механизм регламентных заданий в восьмой платформе имеет свои особенности. Главное – когда задание создано, оно продолжает существовать в системе как отдельный объект и в платформе нет встроенных средств управления этими заданиями, есть только программные методы обращения к их свойствам и их изменения. Для того, чтобы хоть что-нибудь изменить была написана эта обработка.

    Консоль регламентных заданий

    Окно обработки “Консоль регламентных заданий”

    Читать далее

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

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

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

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