Заказы на доработку 1С (сервис удаленной работы)

Хранилище

База знаний
Неназначенных незавершенных заказов: 2
Бесплатные отчеты, обработки, конфигурации, внешние компоненты для 1С Статьи, описание работы, методики по работе с 1С

Здравствуйте, гость ( Вход | Зарегистрироваться )



> Баги чи недокументовані особливості (ньюанси) роботи із платформою , постимо та обговорюємо 4 страниц V  < 1 2 3 4 >          
mister-x Подменю пользователя
сообщение 27.08.12, 11:35
Сообщение #21

...
Иконка группы
Модератору Про1С (за заслуги в 2011 году)
Группа: Местный
Сообщений: 3477
Из: Тернопіль
Спасибо сказали: 1422 раз
Рейтинг: 0

все ок
Цитата
Важно!
Если данная процедура описана в модуле формы, то вызывается она, иначе система запускает одноименную процедуру из глобального модуля.


alex040269 Подменю пользователя
сообщение 27.08.12, 12:20
Сообщение #22

Крутой
Иконка группы
Группа: Местный
Сообщений: 1626
Из: Гуляйполе
Спасибо сказали: 236 раз
Рейтинг: 0

Цитата(vadim007 @ 27.08.12, 9:10) *
На выходных боролся с проблемой - не мог побороть.
Суть в следующем:
Внешний отчет, создает печатную форму. В модуле отчета описана процедура ОбработкаЯчейкиТаблицы(Зн, Флаг, Конт, Ячейка).
Так вот, если диалог отчета не закрыт, то при клике на ячейке печатной формы вызывается описанная в отчете процедура ОбработкаЯчейкиТаблицы(Зн, Флаг, Конт, Ячейка).
Если диалог закрыт, то вызывается описанная в глобальном модуле процедура ОбработкаЯчейкиТаблицы(..).
Для встроенных в конфигурацию отчетов вызывается описанная в модуле отчета процедура ОбработкаЯчейкиТаблицы(..), если она на самом деле имеется.
По моему, это баг платформы, побороть нельзя.

как мне кажется - это не баг. Когда процедура существует (форма открыта) - вызывается из формы, когда не существует (форма закрыта) - вызывается из глобального модуля. Я когда-то с этим тоже парился... Пришел к выводу, что нужно закрывать таблицу при закрытии формы. Тогда выполнение программы выглядит более понятным для пользователя.


Signature
Никогда не бойся делать то, что не умеешь, помни - Ноев ковчег был построен любителем, профессионалы построили Титаник.
ЗиУП

vadim007 Подменю пользователя
сообщение 27.08.12, 12:43
Сообщение #23

Почти крутой
Иконка группы
Группа: Местный
Сообщений: 1298
Из: Донецк
Спасибо сказали: 208 раз
Рейтинг: 0

Цитата(mister-x @ 27.08.12, 12:35) *
Важно!
Если данная процедура описана в модуле формы, то вызывается она, иначе система запускает одноименную процедуру из глобального модуля.

Как раз вот это "Важно!" и не срабатывает в описанном мной случае.

alex040269 Подменю пользователя
сообщение 27.08.12, 13:00
Сообщение #24

Крутой
Иконка группы
Группа: Местный
Сообщений: 1626
Из: Гуляйполе
Спасибо сказали: 236 раз
Рейтинг: 0

Цитата(vadim007 @ 27.08.12, 13:43) *
Как раз вот это "Важно!" и не срабатывает в описанном мной случае.


Если форма закрыта, то 1с считает, что процедура не описана, т.к. ее нет в данный момент в памяти.


Signature
Никогда не бойся делать то, что не умеешь, помни - Ноев ковчег был построен любителем, профессионалы построили Титаник.
ЗиУП

Спасибо сказали: vadim007,

mister-x Подменю пользователя
сообщение 27.08.12, 13:26
Сообщение #25

...
Иконка группы
Модератору Про1С (за заслуги в 2011 году)
Группа: Местный
Сообщений: 3477
Из: Тернопіль
Спасибо сказали: 1422 раз
Рейтинг: 0

Цитата(vadim007 @ 27.08.12, 9:10) *
Для встроенных в конфигурацию отчетов вызывается описанная в модуле отчета процедура ОбработкаЯчейкиТаблицы(..), если она на самом деле имеется.

навіть якщо форма внутріншнього звіту чи обробки закрита, в цю форму відлагоджувачем (отладчиком) заходить в процедуру ОбработкаЯчейкиТаблицы?

vadim007 Подменю пользователя
сообщение 27.08.12, 13:46
Сообщение #26

Почти крутой
Иконка группы
Группа: Местный
Сообщений: 1298
Из: Донецк
Спасибо сказали: 208 раз
Рейтинг: 0

Цитата(mister-x @ 27.08.12, 14:26) *
навіть якщо форма внутріншнього звіту чи обробки закрита, в цю форму відлагоджувачем (отладчиком) заходить в процедуру ОбработкаЯчейкиТаблицы?

Проверял отладчиком - не заходит, если формы нет на экране.

mister-x Подменю пользователя
сообщение 27.08.12, 14:19
Сообщение #27

...
Иконка группы
Модератору Про1С (за заслуги в 2011 году)
Группа: Местный
Сообщений: 3477
Из: Тернопіль
Спасибо сказали: 1422 раз
Рейтинг: 0

а в зовнішню обробку чи звіт, якщо він відкритий(а) також не заходить в цю процедуру?

vadim007 Подменю пользователя
сообщение 27.08.12, 15:40
Сообщение #28

Почти крутой
Иконка группы
Группа: Местный
Сообщений: 1298
Из: Донецк
Спасибо сказали: 208 раз
Рейтинг: 0

Цитата(mister-x @ 27.08.12, 15:19) *
а в зовнішню обробку чи звіт, якщо він відкритий(а) також не заходить в цю процедуру?

Заходит. В том-то и прикол!

Ardi Подменю пользователя
сообщение 27.08.12, 15:58
Сообщение #29

Живет на форуме
***********
Гений телепатии и социального моделирования
Группа: Пользователи
Сообщений: 4121
Из: Киев
Спасибо сказали: 957 раз
Рейтинг: 0

Почиталъ посты vadim007, переписавь хату на котя.

Сообщение отредактировал Ardi - 27.08.12, 15:58


Signature
Услуги 1С программиста 8.2, 7.7 (Плохо, дорого, очередь). Киев.

mister-x Подменю пользователя
сообщение 27.08.12, 17:03
Сообщение #30

...
Иконка группы
Модератору Про1С (за заслуги в 2011 году)
Группа: Местный
Сообщений: 3477
Из: Тернопіль
Спасибо сказали: 1422 раз
Рейтинг: 0

Цитата(vadim007 @ 27.08.12, 16:40) *
Заходит. В том-то и прикол!

воно і повинно туди заходити, згідно документації (якщо форма звіту, обробки відкрита)

от так воно працює
Цитата(alex040269 @ 27.08.12, 13:20) *
как мне кажется - это не баг. Когда процедура существует (форма открыта) - вызывается из формы, когда не существует (форма закрыта) - вызывается из глобального модуля. Я когда-то с этим тоже парился... Пришел к выводу, что нужно закрывать таблицу при закрытии формы. Тогда выполнение программы выглядит более понятным для пользователя.


Спасибо сказали: vadim007,

Cthulhu Подменю пользователя
сообщение 27.08.12, 17:43
Сообщение #31

Завсегдатай
Иконка группы
Группа: Местный
Сообщений: 224
Из: не ту страну назвали Гондурасом
Спасибо сказали: 83 раз
Рейтинг: 0

vadim007
Это не баг, скорее недокументированная особенность. При открытии формы выполняется её компиляция и размещение в памяти, после чего выполняется тело модуля. Пока форма открыта (размещена в памяти) - из элементов её диалога доступны процедуры и функции модуля - это вопросов и стремлений что-то "побороть" не вызывает, верно?.. так вот, для "дочерних окон" - в частности, для окон с выведенными в них таблицами - механизм полностью аналогичен. Или более аккуратно сформулировать если, то вот:

Для таблиц, сформированных (и показанных) из модуля открытого экземпляра формы (любой!), предопределенные процедуры (в частности ОбработкаЯчейкиТаблицы) выполняется в контексте открытого экземпляра формы (из модуля этой формы) пока этот экземпляр формы открыт; иначе выполняются предопределенные процедуры (в частности ОбработкаЯчейкиТаблицы) Глобального Модуля.

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

Сообщение отредактировал mister-x - 27.08.12, 19:38
Причина редактирования: У нас на Вы. Правила пункт №1; MATEVI

Спасибо сказали: vadim007,

vadim007 Подменю пользователя
сообщение 28.08.12, 7:12
Сообщение #32

Почти крутой
Иконка группы
Группа: Местный
Сообщений: 1298
Из: Донецк
Спасибо сказали: 208 раз
Рейтинг: 0

Цитата(Cthulhu @ 27.08.12, 18:43) *
Для таблиц, сформированных (и показанных) из модуля открытого экземпляра формы (любой!), предопределенные процедуры (в частности ОбработкаЯчейкиТаблицы) выполняется в контексте открытого экземпляра формы (из модуля этой формы) пока этот экземпляр формы открыт; иначе выполняются предопределенные процедуры (в частности ОбработкаЯчейкиТаблицы) Глобального Модуля.

Можно ссылку на первоисточник?

alex040269 Подменю пользователя
сообщение 28.08.12, 7:25
Сообщение #33

Крутой
Иконка группы
Группа: Местный
Сообщений: 1626
Из: Гуляйполе
Спасибо сказали: 236 раз
Рейтинг: 0

Цитата(vadim007 @ 28.08.12, 8:12) *
Можно ссылку на первоисточник?

ответ здесь:
Цитата(mister-x @ 27.08.12, 12:35) *
Важно! Если процедура описана в модуле формы, то вызывается она, иначе система запускает одноименную проце-дуру из глобального модуля

процедура описана до тех пор, пока открыта форма.


Signature
Никогда не бойся делать то, что не умеешь, помни - Ноев ковчег был построен любителем, профессионалы построили Титаник.
ЗиУП

vadim007 Подменю пользователя
сообщение 28.08.12, 8:18
Сообщение #34

Почти крутой
Иконка группы
Группа: Местный
Сообщений: 1298
Из: Донецк
Спасибо сказали: 208 раз
Рейтинг: 0

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

Cthulhu Подменю пользователя
сообщение 28.08.12, 9:27
Сообщение #35

Завсегдатай
Иконка группы
Группа: Местный
Сообщений: 224
Из: не ту страну назвали Гондурасом
Спасибо сказали: 83 раз
Рейтинг: 0

Цитата(vadim007 @ 28.08.12, 8:18) *
Мне нужна одинаковая реакция на клик в ячейках таблицы, независимо от того, висит форма отчета в памяти или нет.
Придется дописывать в глобальном модуле.

ещё вариант - таблица в режиме ввода данных.
только не ОбработкаЯчейкиТаблицы, а ПриВыбореЯчейки.

alex040269 Подменю пользователя
сообщение 28.08.12, 12:14
Сообщение #36

Крутой
Иконка группы
Группа: Местный
Сообщений: 1626
Из: Гуляйполе
Спасибо сказали: 236 раз
Рейтинг: 0

Цитата(mister-x @ 27.08.12, 15:19) *
а в зовнішню обробку чи звіт, якщо він відкритий(а) також не заходить в цю процедуру?

саме на зовнішніх я і тестував. в мене була потреба робити звіти без зміни та під різні конфігураціі. Поки форма відкрита викликається процедура з форми. Все логічно.


Signature
Никогда не бойся делать то, что не умеешь, помни - Ноев ковчег был построен любителем, профессионалы построили Титаник.
ЗиУП

Ardi Подменю пользователя
сообщение 28.08.12, 13:28
Сообщение #37

Живет на форуме
***********
Гений телепатии и социального моделирования
Группа: Пользователи
Сообщений: 4121
Из: Киев
Спасибо сказали: 957 раз
Рейтинг: 0

Я так думаю печатную форму нужно выводить в ФОРМУ ОБРАБОТКИ а не отдельно. И всё получится.


Signature
Услуги 1С программиста 8.2, 7.7 (Плохо, дорого, очередь). Киев.

Спасибо сказали: vadim007,

mister-x Подменю пользователя
сообщение 28.08.12, 14:53
Сообщение #38

...
Иконка группы
Модератору Про1С (за заслуги в 2011 году)
Группа: Местный
Сообщений: 3477
Из: Тернопіль
Спасибо сказали: 1422 раз
Рейтинг: 0

Цитата(vadim007 @ 28.08.12, 9:18) *
Мне нужна одинаковая реакция на клик в ячейках таблицы, независимо от того, висит форма отчета в памяти или нет.
Придется дописывать в глобальном модуле.

в такому випадку - прийдеться

Cthulhu Подменю пользователя
сообщение 25.09.12, 14:33
Сообщение #39

Завсегдатай
Иконка группы
Группа: Местный
Сообщений: 224
Из: не ту страну назвали Гондурасом
Спасибо сказали: 83 раз
Рейтинг: 0

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

vadim007 Подменю пользователя
сообщение 26.09.12, 10:16
Сообщение #40

Почти крутой
Иконка группы
Группа: Местный
Сообщений: 1298
Из: Донецк
Спасибо сказали: 208 раз
Рейтинг: 0

Еще одна особенность при обновлении измененных конфигураций. Давно сталкивался, и вот снова те же грабли:
Редактируем конфигурацию заказчика у себя. В неком документе имя реквизита ВидОплаты меняем на ФормаОплаты (так кажется более логично, т.к. он типа Перечисление.ФормаОплаты). Сохраняем конфу, приезжаем к заказчику, обновляем конфу. В окне "Объединение конфигураций" 1С честно предупреждает: ФормаОплаты: Объект добавлен; ВидОплаты: Объект удален, Возможна потеря данных!!!
Проверяем, правда-ли это - принимаем изменения, запускаем 1С, открываем документ - так и есть: реквизит ФормаОплаты у заказчика пуст!
Т.о., обновление в таких случаях нужно делать за два шага: непосредственно у заказчика изменяем имена реквизитов, если такое требуется, а затем обновляем конфу.

Не нашли ответа на свой вопрос?
Зарегистрируйтесь и задайте новый вопрос.


4 страниц V  < 1 2 3 4 >
Ответить Новая тема
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

RSS Текстовая версия Сейчас: 16.06.25, 2:42
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!