[ Разбор вопросов ] Разбор вопросов уровня 1С:Специалист по платформе, 1С:Специалист-консультант по упр.учету в ERP, 1C:Эксперт

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

 

Вопрос №1: Как применять конструктор “Новый Граница” в тонком и веб-клиенте?

Поясните, пожалуйста, применение конструктора “Новый Граница” в тонком и веб-клиенте. В требованиях экзамена говорится: “Решение должно одинаково работать как в тонком, так и в Веб-клиенте, если иное не оговорено условием конкретной задачи“. В Синтакс-помощнике по конструктору “Новый Граница” приведена следующая информация: “Важно! Конструктор в тонком и веб-клиентах не доступен” и по самой Границе: “На тонком и веб-клиентах контекста не имеет“. Или все манипуляции с ней должны производиться на сервере и в толстом клиенте?

Ответ

В данном случае имеется в виду, что следует учитывать различные режимы работы системы, и то, что некоторые объекты могут быть в определенных случаях недоступны непосредственно. Это, как правило, касается “тяжелых” объектов для доступа к данным – они недоступны в клиентской части при выполнении в тонком и веб-клиентах (Граница – один из таких объектов). В этом случае следует, если требуется, организовать клиент-серверное взаимодействие, передав управление на сервер, где эти объекты доступны.

Напомню, клиент-серверная архитектура предполагает, что выполнение кода приложения разделено: часть кода выполняется на клиенте (условно – на компьютере пользователя), часть – на сервере (в общем случае на другом компьютере). Ресурсоемкие операции (большинство операций получения и модификации данных) выполняются только на сервере, на клиенте они выполняться не могут. Для выполнения таких операций (например, получения или модификации данных) клиент передает управление на сервер, сервер производит нужные действия и возвращает клиенту требуемый результат.

Частный случай – толстый клиент, особенно в файловом режиме – ему непосредственно доступны большинство объектов и методов для манипуляции с данными.

Ошибкой будет полагаться при разработке, что для запуска приложения всегда используется толстый клиент. Нужно предполагать возможность запуска и других видов клиентов (тонкого, веб), а также различные режимы работы (файловый, клиент-серверный). А потому нужно четко понимать, где будет выполняться тот или иной метод – на клиенте или на сервере, использовать подходящие объекты и методы, организовывать клиент-серверное взаимодействие.

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

Поэтому, кстати, всегда следует тестировать свое решение в тонком клиенте – все подобного рода недочеты и упущения наверняка проявятся.

Всегда следует учитывать контекст выполнения кода.

Если выполнение происходит на клиенте, для доступа к данным нужно передать управление на сервер, вызвав серверный метод. Это универсальный прием, который обеспечит работоспособность приложения для любого клиента и любого режима работы. Это в первую очередь касается процедур и функций в модулях форм, в клиентских и клиент-серверных общих модулях. Напомню, для помещения методов и переменных в клиентскую или серверную предусмотрены специальные директивы препроцессора &НаКлиенте, &НаСервере.

Если код выполняется уже на сервере, дополнительные манипуляции не нужны.

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

Обратите внимание, процедура ОбработкаПроведения() определена в модуле документа, это серверный контекст, поэтому здесь можно использовать такие объекты как Запрос, Граница, Набор записей, Таблица значений, и т.п., которые доступны только на сервере. Причем, опять-таки не важно, какой используется клиент: проведение документа выполняется всегда на сервере.

 

Вопрос №2: Почему в 1С:ERP в платежном календаре присутствует кассовый разрыв, которого фактически нет?

Готовлюсь к аттестации 1С:Специалист-консультант по упр.учету в 1С:ERP. У меня возник кассовый разрыв и я по условию задачи взяла кредит. Ввела договор кредита, на его основании ввела документ поступления денежных средств, но из платежного календаря кассовый разрыв не исчез. В чем может быть проблема?

Ответ

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

В вашем случае, Вы берете кредит 26.03.21, поэтому:

A. Если формировать платежный календарь 25.03.21 и документ поступления безналичных ДС не будет в статусе “Проведено банком”, то он нормально будет учтен при формировании платежного календаря (см.скриншот 1)

Платежный календарь

(нажмите, чтобы увеличить картинку)

B. Аналогичная ситуация будет возникать, если формировать платежный календарь 26.03.21 и документ поступления безналичных ДС будет в статусе “Проведено банком” – он также будет нормально учтен при формировании платежного календаря (см.скриншот 2)

Платежный календарь

(нажмите, чтобы увеличить картинку)

C. Проблема возникнет, если формировать платежный календарь 25.03.21 и документ поступления безналичных ДС будет в статусе “Проведено банком” – в этом случае, он не будет учтен при формировании платежного календаря (см.скриншот 3), так как логика, заложенная в платежный календарь, отталкивается от текущего момента и ориентируется на планирование будущих действий, и считает, что Вы не можете определенно знать, какие события произойдут в дальнейшем, поэтому не учитывает фактические платежи, совершенные будущими датами.

Платежный календарь

(нажмите, чтобы увеличить картинку)

Данную особенность работы прикладного решения необходимо учитывать при решении задания на экзамене и быть готовым объяснить ее экзаменатору.

 

Вопрос №3: Почему после полного пересчета итогов не удаляются все записи с нулевыми значениями в таблице итогов?

Подскажите, пожалуйста, почему после полного пересчета итогов не удаляются все записи с нулевыми значениями в таблице итогов? Их немного, но они есть. Обновление статистики после этого сделано. Скриншот прилагается.

Таблица итогов

(нажмите, чтобы увеличить картинку)

Нулевые итоги были получены обработкой, которая предоставляется слушателям в рамках курса. Проблема возникла с оборотным регистром накопления. Признак использования текущих итогов актуален только для регистров накопления вида “Остатки”, все верно? Если “Да”, тогда вопрос: как бороться с нулевыми итогами оборотных регистров накопления или для них это не принципиально?

Ответ

  1. Да, признак использования текущих итогов актуален только для регистров остатков. Это верно. У оборотного регистра нет остатков.
  2. У оборотного регистра есть таблица итоговых оборотов по набору измерений. Даже пустые итоговые записи – это нормально (в большинстве релизов платформы 1С  такие записи не чистятся. Разработчики такое поведение обосновывают тем, что операция “update” существующей записи значительно “дешевле” по ресурсам и времени чем “insert”).

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Вход на сайт

Зарегистрироваться

Подтверждение регистрации будет отправлено на указанный e-mail.

Я подтверждаю, что ознакомлен(а) с Пользовательским соглашением, принимаю его условия и даю свое согласие на обработку моих персональных данных.

Восстановить доступ

E-mail или логин

Ссылка на создание нового пароля будет отправлена на указанный e-mail.