Архив метки: 8.1

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

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

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

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

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

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

    Использование регистра сведений

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

    Не сохраняются настройки сканера

    Когда используется сканер штрих-кода, в настройках драйвера необходимо установить параметры подключения и указать, что устройство включено, это делается в меню “Сервис”, пункт “Параметры”, закладка “Драйвер устройств ввода”:

     

    2011-06-14_140845

    На некоторых компьютерах могут быть проблемы с сохранением этих настроек, т.е. после перезагрузки 1С или сразу после выхода из окна настроек все параметры обнуляются. В случае использования драйверов “АТОЛ” поможет утилита, поставляемая вместе с драйвером: Scaner_t. Если драйвер установлен с параметрами по умолчанию, найти утилиту можно в папке: C:\Program Files\ATOL\Drivers\Bin

    После запуска утилиты найдите кнопку “Настройка свойств”, появится такая-же форма настроек, как и в 1С, здесь и нужно выставить нужные настройки.

    Как перейти с 8.1 на 8.2

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

     

    2011-06-07_104044

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

    Хотя процесс выглядит простым, все-таки сделайте копию своей базы данных!

    Читать далее

    Обновления только для 8.2

    С 1 июня 2011 года обновления для типовых конфигураций будут выпускаться только для платформы версии 8.2. В связи с этим всем, кто использует конфигурации на платформе 8.1 необходимо провести обновление платформы для возможности устанавливать новые версии конфигурации. Об этом сообщила фирма 1С в информационном письме №13627.

    Особо переживать не стоит – конвертация существующей базы с платформы 8.1 на 8.2 происходит безболезненно и без потери данных, никаких изменений в самой конфигурации не требуется, главное – сделать переход заблаговременно, пока не наступила пора сдачи полугодовых отчетов.

    Null <> Неопределено

    С непривычки, может показаться, что понятия “Неопределено” и “Null” – синонимы в языке 1С, как, например, “Пока” и “While”. На самом деле это два разных типа. Значения типа Null в основном встречаются в результатах запроса, при объединении таблиц или в значениях группировок, когда запрос строится с итогами по группировкам, а значения некоторых реквизитов запроса попадают не во все группировки.

    Вот описание типов из документации:

    Значение типа Неопределено используется прежде всего как значение по умолчанию (незаданное значение) для полей с составным типом. Например, если есть реквизит, который имеет составной тип, включающий СправочникСсылка.Товары и СправочникСсылка.Материалы, то значением реквизита по умолчанию будет Неопределено. Так же это значение используется и в других случаях для обозначения неуказанного значения.

    Значение типа Null используется при работе с таблицами прикладных объектов. Оно обозначает отсутствие значения поля в выборке. Прежде всего оно используется в результатах запросов выполняющих левое или правое соединение. Поля невыбранных записей таблиц участвующих в таких соединениях будут иметь значение Null. Кроме того, значение типа Null будет иметь, например, реквизит иерархического справочника для элементов-групп, если в метаданных указано, что этот реквизит используется только для элементов не являющихся группами.

    Наглядный пример, когда одновременно понадобилось использовать оба типа:

    2011-05-30_115347

    В этом примере “Обороты” – выборка из запроса, “СписокТочек” – список значений, одно и то же значение из выборки нужно проверить пустое или нет и принадлежит списку значений или нет. Т.е. обращаясь к результату запроса, сравниваем с Null, а проверяя результат поиска в списке, сравниваем с Неопределено.

    Проверка документа перед проведением

    Businessman with sticky noteЕще одна привычка из седьмой версии, которую нужно менять с переходом на восьмерку: проверять все условия проведения документа в процедуре проведения. Дело в том, что в восьмой версии в модуле документа доступно больше событий и их можно гибче использовать.  Если, например, нужно наложить ограничение, связанное с признаком проведенности документа, сделать это в процедуре ОбработкаПроведения() не получится – свойство “Проведен” в этой процедуре уже будет равно “Истина”.

    В этом случае пригодится стандартная процедура ПередЗаписью(). Полезность ее в том, что в ней доступны признаки режимов записи и проведения, т.е. можно установить, в каком направлении происходит изменение документа – отмена проведения или первая запись или перепроведение, кроме того, есть возможность отменить запись. Например, есть документ, в котором нужно запретить пользователю перепроводить его, но нужно оставить возможность отменить проведение и потом провести заново, для этого достаточно в модуле документа вставить такой код:

    2011-04-18_092149

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

    В восьмерке условия в запросе срабатывают немного не так, как к тому привык “семерочник”, т.е. как это заведено в семерке. Например, в 7.7, если указать в запросе условие вида

    Условие (Товар в ВыбТовар);

    и при этом переменная ВыбТовар – пустой элемент справочника, в выборку попадут все варианты значений переменной Товар: пустые, группы, элементы.

    В восьмерке есть похожий вариант наложения условия:

    ГДЕ ПартииТоваров.Товар В ИЕРАРХИИ(&Товар);

    если в параметр запроса Товар передать пустую ссылку, то в результат запроса попадут все непустые значения, т.е. группы и элементы, но не попадут записи регистра, где значение этого измерения не заполнено. Чтобы условие сработало также, как и в семерчном варианте нужно либо программно вообще убрать условие из текста запроса или переписать его например так:

    ГДЕ (ПартииТоваров.Товар В ИЕРАРХИИ(&Товар) ИЛИ ПартииТоваров.Товар = &ПустаяСсылкаТовар);

    потом в параметр запроса передать пустую ссылку справочника:

    Запрос.Параметры.Вставить(“ПустаяСсылкаТовар”, Справочники.Товары.ПустаяСсылка());

    Возможно есть способ и покрасивее, но я пока нашел только такой.

    UPD для платформы 8.2 Пустую ссылку можно получить прямо в запросе с помощью функции ЗНАЧЕНИЕ, примерно в таком виде: ЗНАЧЕНИЕ(Справочник.Товары.ПустаяСсылка).

    1С 8.2

    После ознакомления с новой платформой возникает только сожаление о том, что все еще приходится иметь дело с версией 8.1. Действительно, изменения впечатляют. Кто не видел, посмотрите к примеру на изображение частично конвертированного “Простого учета” из версии 8.1 на версию 8.2

    2010-05-03_104814

    Это внешний вид программы в режиме “Управляемого приложения”, так она будет выглядеть и в окне браузера, например. Единственное “неудобство” в том, что для такой красоты все формы объектов конфигурации нужно переделать заново в “управляемые формы”. Если конфигурацию запустить в режиме “Обычное приложение”, то все будет выглядеть так-же, как и в версии 8.1. Так что если кто-то собирается начинать изучение восьмерки, начинайте сразу с новой версии, там интереснее.