Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
28 окт 2021, 23:17

Одна и та же форма в разных базах работает по разному.

Автор Yukimir, 24 фев 2010, 12:01

0 Пользователей и 1 гость просматривают эту тему.

Yukimir

Моя проблема в следующем:

Пишу новую обработку, обработка намечается сложная и для удобства редактирования и проверки сделал ее внешней. Из нее вызывается другая обработка. Процедура вызова следующая:
Перем ТаблДанных Экспорт;
Перем ОбъектПривязка;
Перем ТП, СписокЦветовСклада;
Перем ТабЗначенийКолонок;

Процедура Сформировать()
Конт = глВзятьКонтекст(Контекст);
ОткрытьФормуМодально("Отчет",Конт,"D:\1C\Тест\Временные обработки\Подсортировка\ОстаткиПоРазмерам.ert");
КонецПроцедуры


В вызываемой обработке принимается Контекст и по результатам выполнения Запроса заполняются таблици из первой обработки:
Процедура ПриОткрытии()     

Конт = Форма.Параметр;
Если ПустоеЗначение(Конт) = 1 Тогда
Форма.Закрыть();
КонецЕсли;
...
КонецПроцедуры

Процедура Сформировать()
...
Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда
Возврат;
КонецЕсли;

Табл = СоздатьОбъект("ТаблицаЗначений");
//Заполняем Табл
Табл.Выгрузить(Конт.ТаблДанных);
Форма.Закрыть();
КонецПроцедуры


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

Как обойти это глюк я знаю, но мне хочется разобраться в чем собственно глюк, может я что то упустил из виду. По этому поводу прошу не предлагать запихнуть необходимые таблици в список значений и передать его вместо контекста. Меня больше интересует почему передача контекста во всех вариантах работает по разному. Уже попробовал на прямую передавать контекст в открываемую форму и через Конт = глВзятьКонтекст(Контекст); результат одинаковый. Если воспользоваться глВзятьКонтекст(Контекст), то в глобальном модуле в процедуре глВзятьКонтекст(Конт) также в одной базе доступны общие переменные, а в другой нет. Получается проблема в получении контекста и передачи его в качество параметра. Но в связи с чем проблема?

Tatitutu

жесть...нет слов.
Ты прочитай где нибудь в умной книжке про Контект более подробно, что это такое и как с ним бороться.

*  MAGAZKA - лучшая программа для розничного магазина (с) *

Yukimir

Цитата: Tatitutu от 23 мар 2010, 17:05
жесть...нет слов.
Ты прочитай где нибудь в умной книжке про Контект более подробно, что это такое и как с ним бороться.


А вы бы мне посоветовали умную книжку, где все подробно расписано по моей проблеме, а то мне как то все время попадались "не совсем умные", если я так и не нашел в них как решить свою проблему.

Теги:

Похожие темы (5)

Рейтинг@Mail.ru Rambler's Top100

Поиск