1с не меняется страница
Задача состояла в следующем. В форме динамического списка необходимо было показать итоговую информацию. К примеру, в журнале накладных вывести количество накладных и общую сумму. Получить необходимые данные не составляло труда - формировался запрос с условием, соответствующим текущему отбору списка и запускался на выполнение. Но неожиданно проблемой оказалось обеспечение "синхронности" между данными списка и итоговой информацией.
То есть, данные динамического списка могут изменяться по различным причинам:
1. Изменился отбор списка
2. Пользователь в текущем сеансе изменил или удалил объект из списка
3. Пользователь нажал в форме кнопку "Обновить" (либо настроено автоматическое обновление списка)
Соответственно, хотелось бы после каждого такого события сразу пересчитывать служебную информацию.
Варианты решения были следующие:
1. Использовать событие формы "ОбновлениеОтображения".
Это событие действительно реагирует на любое изменение динамического списка. Но оно также вызывается и во многих других случаях. В частности, при смене страницы формы, при активизации строки в списке (если назначена обработка этих событий) и т.д. Короче, использование этого варианта вызывало приличные тормоза из-за перерасчета итогов после каждого чиха пользователя.
2. Использовать событие табличного поля "ПриПолученииДанных".
Вариант имеет такие же недостатки, как и предыдущий, хотя и в меньшей степени. Т.е. событие (а значит, и перерасчет итогов) выполнялось не только когда данные списка действительно менялись, но и при прокрутке списка, и даже при изменении размеров формы.
3. Добавить в форму кнопочку "Рассчитать", чтобы пользователь жал на неё всякий раз, когда ему потребуются актуальные итоги по списку. Коряво, неудобно, но приходилось поступать именно так, пока не появился ВАРИАНТ 4.
Хотя решение немного через .опу
Суть: на форму добавляется скрытое табличное поле, источником данных которого служит нужный нам динамический список, и далее используется событие "ПриПолученииДанных" этого табличного поля. Так как данное табличное поле не прокручивается и не меняет размеров, то событие возникает только тогда, когда список реально требует обновления.
Правда, в процессе реализации этого варианта вылезло ещё несколько "особенностей" платформы, но почти все удалось обойти.
В результате, сервисный код упрятан в две процедуры общего модуля: ПодключитьОбработчикОбновленияСписка(. ) и ОтключитьОбработчикОбновленияСписка(. ). Первая назначает для обработки обновления списка процедуру модуля формы, вторая, соответственно, отключает обработчик. Выглядит всё это так:
Теперь ложка дёгтя.
Алгоритм не отрабатывает ситуацию, когда список полностью очищается. То есть, в списке были какие-то строки, а потом пользователь все строки удалил, либо задал такой отбор, при котором в список не попадает ни один объект. Как оказалось, 1С просто не вызывает событие "ПриПолученииДанных" для пустого списка.
Чтобы обойти эту проблему, пришлось погрузиться в .опу уже по локоть.
Используя событие "ПриАктивизацииСтроки" нашего вспомогательного табличного поля, можно отловить ситуацию, когда свойство ТекущаяСтрока табличного поля меняет значение на Неопределено, сигнализируя, что в списке больше нет ни одной строки. Но очередной сюрприз от платформы - приняв значение Неопределено, ТекущаяСтрока "фиксируется" на нем, и не меняется, даже когда в списке вновь появляются объекты. То есть, если не поменять значение текущей строки, второй раз событие "ПриАктивизацииСтроки" уже не сработает.
Трагедия в том, что узнать, что список вновь заполнен, можно только в "ПриПолученииДанных", а изменить текущую строку во время обработки данного события невозможно - 1С вылетает с критической ошибкой (желающие могут попробовать). Помогли только пляски с шаманским бубном вокруг компьютера.
В итоге, получилось следующее:
Замечание от Гений1С:
Можно попробовать подключить функцию изменения данных ПодключитьОбработчикИзмененияДанных на данные списка.
Замечание от clappa:
Мне удалось использовать ПодключитьОбработчикИзмененияДанных только для контроля за изменением отбора динамического списка. В других перечисленных случаях этот метод бесполезен. В частности, изменение порядка он "не ловит".
Начальная страница в любой конфигурации 1С может являться эффективной точкой старта работы и источником наглядной информации, если ее правильно настроить. И хотя в программе 1С:Бухгалтерия 8 начальная страница сразу содержит большое количество полезной информации, в других конфигурациях возможности начальной страницы не будут достаточно задействованы без дополнительной настройки. Как настроить начальную страницу в 1С:Бухгалтерии и других конфигурациях?
В программе 1С:Бухгалтерия 8 кнопка настройки расположена прямо на начальной странице. Однако в других конфигурациях для настройки начальной страницы необходимо зайти в главное меню (стрелка в левом верхнем углу экрана), "Вид", "Настройка начальной страницы. ". Далее мы рассмотрим пример настройки на примере конфигурации 1С:Бухгалтерия государственного учреждения 8.
Элементы начальной страницы можно расположить в двух колонках. Если используется только одна колонка, то элементы будут расположены друг под другом на всю ширину окна. В окне настройки можно менять взаимное расположение элементов как в пределах одной колонки, так и между разными колонками. При этом в 1С:Бухгалтерии 8 начальная страница формируется по другой логике – элементы располагаются в 3 колонки последовательно один за другим.
В данном случае доступно очень мало элементов для отображения. Предположим, мы хотим видеть на начальной странице список выставленных счетов и их статус. Для этого необходимо выйти из программы и зайти в конфигуратор.
Внимание! Внесение изменений в конфигурацию может привести к нарушению функциональности программы. Не вносите изменения, в которых вы не уверены!
В режиме конфигуратора: 1. Для начала откроем конфигурацию (на скриншоте кнопка 1, если кнопка не активна , сразу переходим к шагу 2). 2. Щелкнем правой кнопкой на названии конфигурации для открытия контекстного меню 3. Нажмем на кнопку "Открыть рабочую область начальной страницы"
Откроется соответствующее окно, в котором происходит настройка начальной страницы. Здесь можно задать шаблон начальной страницы (одна или две колонки), указать видимость различных форм для разных групп пользователей (например, сделать некоторые элементы недоступными пользователям определенной группы прав). Чтобы добавить новую форму, нажмем на кнопку "Добавить"
В открывшемся окне нужно найти форму, которую необходимо добавить на начальную страницу. В данном случае искомая форма находится в группе "Документы", "СчетНаОплату". Выбор "ФормаСписка" выведет на начальном экране список счетов на оплату. В данном окне вы можете найти любую нужную вам форму – документы, справочники, отчеты.
После того, как нужные формы добавлены, необходимо сохранить и обновить конфигурацию баз данных.
Теперь если закрыть конфигуратор и вернуться в программу, можно обнаружить, что на начальной странице появилась новая форма.
Добрый день.
Как обновить адреса в карточках физ.лиц? Классификатор с историей загрузила, непонятно почему адрес автоматически не обновляется.
Здравствуйте! Попробуйте зайти в раздел Администрирование — Обслуживание — Регламентные операции — Регламентные и фоновые задания. Далее в открывшемся окне необходимо найти и включить фоновое задание «Исправление устаревших адресов»:
Далее нажмите «Выполнить сейчас»:
Если адреса не изменятся, зайдите в раздел Администрирование — Обслуживание — Корректировка данных -Проверка ведения учета и выполните показанную на скриншоте проверку:
Все это делали, автоматически не меняется, у нас больше 1000 человек, поэтому вручную долго слишком
Здравствуйте! Проверила дополнительно рекомендации разработчиков. В них написано следующее:
Т.е. помимо выполнения регламентного задания «Исправление устаревших адресов» вариантов автоматического исправления больше нет. Некоторые пользователи пишут, что данное регламентное задание у них зависает, может быть у Вас оно тоже до конца не выполнено?
Здравствуйте! Спасибо за информацию и статью. У меня сложилось впечатление, что разработчики ещё не доделала до конца это механизм. Он недавно появился при обновлении БСП, но для ЗУП не адаптирован в полном объёме.
Добрый день! Дополнительно напишу ответ разработчиков по данному вопросу:
«Флажок «Исправлять устаревшие адреса» не доступен для установки в поставляемых видах контактной информации не просто так.
Автоматически изменять адреса в личных данных сотрудника — нехорошо. Например, ПФР требует адрес по прописке как написано в паспорте, без изменений.
Мы рассматриваем проблему автоматического обновления тех видов контактной информации, для которых это кажется допустимым, но пока окончательное решение не выработано.»
При запуске «1С: Предприятия 8.3» в пользовательском режиме первым делом отображается начальная страница. На начальной странице расположены различные формы, с которыми пользователь может сразу начать работу. В этой статье я расскажу, как разработчику настроить представление начальной страницы, а также как пользователю изменить её на своё усмотрение.
Настройка начальной страницы 1С разработчиком
Разберем, как настроить рабочую область начальной страницы разработчиком конфигурации 1С. Делается это, естественно, в конфигураторе 1С. Для настройки рабочей области начальной страницы следует открыть палитру свойств конфигурации.
В этой палитре нас интересует свойство «Рабочая область начальной страницы».
После нажатия на гиперссылку «Открыть» этого свойства, откроется окно «Рабочая область начальной страницы»
В этом окне и можно настроить отображение начальной страницы.
Но, сначала нужно определиться, как должна выглядеть начальная страница. Всего имеется три варианта: одна колонка, две колонки одинаковой ширины и две колонки разной ширины. Нужно выбрать какой-то один вариант. Делается это в свойстве окна «Шаблон начальной страницы».
После того, как вы определитесь с видом начальной страницы, нужно добавить формы объектов в колонки. Имейте в виду: можно добавить только созданные формы. Причем без разницы, будет ли это основная форма объекта или нет.
Добавим форму в левую колонку, для этого нужно нажать на кнопку «Добавить», и в открывшемся окне «Выбор управляемой формы» выбрать из дерева нужную форму.
Например, в левую колонку окна добавим форму списка документа, а в правую – формы списков справочников.
В списке колонки мы можем настроить видимость для различных ролей.
А с помощью значений в поле «Высота» мы можем задать, в какой пропорции будут отображаться формы в колонке начальной страницы.
После сохранения конфигурации и обновления базы данных, при запуске «1С: Предприятия» будет отображаться сконфигурированная начальная страница.
Настройка начальной страницы 1С пользователем
Пользователи могут самостоятельно настраивать начальную страницу под свои требования. Чтобы это сделать, нужно открыть окно «Настройка начальной страницы». В платформе 1С начиная с версии 8.3.15 открыть это окно можно по следующему пути: «Сервис и настройки – Настройки – Настройка начальной страницы…».
Для более старых релизов платформы путь будет следующим:
В открывшемся окне пользователь может настроить начальную страницу: убрать не нужные ему формы и переместить.
Например, при такой настройке начальной страницы пользователем.
Будет следующий вид.
Если пользователь пожелает вернуть настройки начальной страницы, сделанные разработчиком, то достаточно в окне «Настройка начальной страницы» выполнить команду «Установить стандартные настройки».
Более подробно и основательно разработка в 1С дается в моей книге: «Программировать в 1С за 11 шагов»
Изучайте программирование в 1С в месте с моей книги «Программировать в 1С за 11 шагов»
- Книга написана понятным и простым языком — для новичка.
- Книга посылается на электронную почту в формате PDF. Можно открыть на любом устройстве!
- Научитесь понимать архитектуру 1С;
- Станете писать код на языке 1С;
- Освоите основные приемы программирования;
- Закрепите полученные знания при помощи задачника;
О том как разрабатывать под управляемым приложением 1С, читайте в книге Книга «Основы разработки в 1С: Такси»
Отличное пособие по разработке в управляемом приложении 1С, как для начинающих разработчиков, так и для опытных программистов.
- Очень доступный и понятный язык изложения
- Книга посылается на электронную почту в формате PDF. Можно открыть на любом устройстве!
- Поймете идеологию управляемого приложения 1С
- Узнаете, как разрабатывать управляемое приложение;
- Научитесь разрабатывать управляемые формы 1С;
- Сможете работать с основными и нужными элементами управляемых форм
- Программирование под управляемым приложением станет понятным
Промо-код на скидку в 15% — 48PVXHeYu
Эти книги, плюс книга по программированию оперативного учета имеются в едином комплекте: комплект книг по разработке в 1С.
Только для читателей моего блога,
промо-код на скидку в 300 рублей на весь комплект: blog
Если Вам понравился этот урок, был полезен или помог решить какую-нибудь проблему, то Вы можете поддержать мой проект, перечислив любую сумму.
В этой статье вы узнаете, по какому принципу осуществляется работа со страницами в табличном документе 1С 8.3. Будет показано, как определить помещается ли область (или области) в страницу, а также как принудительно осуществить разделение страниц.
Для демонстрации принципов работы страниц в табличном документе реализуем простой учебный пример: в табличном документе выведем строки со случайными числами и их текстовое представление, количество строк с числами, которые нужно вывести будем вводить в поле на управляемой форме обработки.
Создадим макет табличного документа с горизонтальными областями.
Создадим обработчик команды формы, в котором будем вызывать функцию, где создается и заполняется строками со случайными числами и их текстовым представлением табличный документ.
Этот код комментировать не будем, если у вас он вызывает затруднения, то ознакомьтесь с моими предыдущими статьями и видео-уроками.
Сейчас, когда мы выполним команду и выведем, например, 80 строк, то у нас все будет показано на одной странице, а при попытке распечатать (или выполнить предварительный просмотр) платформа самостоятельно разобьет табличный документ на страницы.
Согласитесь, что такой вариант формирования печатной формы не лицеприятно выглядит.
Для более приятного формирования печатной формы, сделаем так, чтобы каждый раз в конце страницы выводился подвал таблицы, а в начале новой страницы (кроме первой) выводилась шапка таблицы. Для этого доработаем код в методе СформироватьТабличныйДокумент.
Поясним этот код.
Используя метод табличного документа ПроверитьВывод можно проверить, войдет ли вывод области или нескольких областей на страницу табличного документа. Этот метод возвращает Истина, если область вмещается на страницу, и ложь – если нет. Параметром этого метода может быть как область, так и массив областей.
В функции мы создали массив, который состоит из области строки и из области подавала таблицы.
В каждой итерации цикла, в котором осуществляется вывод строк табличного документа, при помощи метода ПроверитьВывод выполняется проверка: вмещается ли область строки и область подвала таблицы в страницу табличного документа.
Если области не вмещаются на страницу табличного документа, то выводится подвал таблицы, потом выводится горизонтальный разделитель таблицы, который, по сути, создает новую страницу таблицы, и осуществляется вывод шапки таблицы уже на новой странице.
В результате, вывод табличного документа осуществится в более удобном виде.
Другие статьи про табличные документы в 1С:
Более подробно и основательно разработка в 1С дается в моей книге: «Программировать в 1С за 11 шагов»
Изучайте программирование в 1С в месте с моей книги «Программировать в 1С за 11 шагов»
- Книга написана понятным и простым языком — для новичка.
- Книга посылается на электронную почту в формате PDF. Можно открыть на любом устройстве!
- Научитесь понимать архитектуру 1С;
- Станете писать код на языке 1С;
- Освоите основные приемы программирования;
- Закрепите полученные знания при помощи задачника;
О том как разрабатывать под управляемым приложением 1С, читайте в книге Книга «Основы разработки в 1С: Такси»
Отличное пособие по разработке в управляемом приложении 1С, как для начинающих разработчиков, так и для опытных программистов.
- Очень доступный и понятный язык изложения
- Книга посылается на электронную почту в формате PDF. Можно открыть на любом устройстве!
- Поймете идеологию управляемого приложения 1С
- Узнаете, как разрабатывать управляемое приложение;
- Научитесь разрабатывать управляемые формы 1С;
- Сможете работать с основными и нужными элементами управляемых форм
- Программирование под управляемым приложением станет понятным
Промо-код на скидку в 15% — 48PVXHeYu
Эти книги, плюс книга по программированию оперативного учета имеются в едином комплекте: комплект книг по разработке в 1С.
Только для читателей моего блога,
промо-код на скидку в 300 рублей на весь комплект: blog
Если Вам понравился этот урок, был полезен или помог решить какую-нибудь проблему, то Вы можете поддержать мой проект, перечислив любую сумму.
Читайте также: