Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

Волшебство программирования на 1С:Предприятие 7.7 и 8.0 . Выпуск 82


Информационный Канал Subscribe.Ru

Волшебство программирования на 1С:Предприятие 7.7 и 8.0
Выпуск 82 / 17.10.2004

v8 Будни: Доступ к глобальным переменным, процедурам и функциям из общих модулей

http://www.forum.mista.ru/topic.php?id=10044

Не секрет, что в общих модулях 8.0 не видны экспортируемые переменные, процедуры и функции модуля приложения.

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

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

Ниже предлагается некоторое решение этой проблемы:

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

В модуле обработки (не путать с модулем формы) размещаются следующие процедуры и функции:

//-------------------------
Функция Получить(Выражение) Экспорт
    Возврат Вычислить(Выражение);
КонецФункции
//-------------------------
Процедура Установить(Имя, Значение) Экспорт
   Выполнить("Имя = Значение");
КонецПроцедуры
//-------------------------
Процедура ВыполнитьПрограмму(Текст) Экспорт
   Выполнить(Текст);
КонецПроцедуры
//-------------------------

Теперь в процедурах и функциях общих модулей можно делать следующие вещи:

Процедура Тест() Экспорт

//создаем объект типа ОбработкаОбъект.XXX
гл = Обработки.гл.Создать();

//получение значения переменной
а = гл.Получить("а");

//коллекции значений передаются "по ссылке", т.е.
//ниже можно изменять ее элементы и они будут изменяться
//в глобальной переменной

//установить значение глобальной переменной
гл.Установить("а",10);

//вызвать экспортную процедуру модуля приложения
гл.ВыполнитьПрограмму("проц()");

//вызвать функцию и получить ее возвращаемое значение
а = гл.Вычислить("функ()");

КонецПроцедуры
-----------------

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

Еще хочу заметить, что такая обработка представляет собой ДЫРУ В БЕЗОПАСНОСТИ, потому что позволяет выполнить произвольный программный код и вызвать любую процедуру или функцию модуля приложения и общих модулей.

Еще хочу заметить, что этот трюк не соответствует идеологии платформы и возможно, что такая конфигурация не пройдет "1С:Совместимо", станет запутаннее и сложнее.

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

Рекомендуется по возможности:
1. Обходиться вообще без глобальных переменных
2. Передавать информацию через параметры процедур и функций
3. Использовать параметры сеанса
4. Не допускать выполнения чужого программного кода
5. Комментировать сложные участки программы


Интересные ветки форума по версии 7.7 (коэф-т 5%):

Ответов Тема
34 ОткрытьФорму("Документ.КуКу"); Как заполнить реквизиты?
10 Специальные процедуры и функции\ОбработкаОжидания
16 При записи изменений в элемент справочника...
13 Конвертация
9 работа 1С+SQL 2000 SP3+WINDOWS 2003
7 Проблема с переиндексацией
7 1С + SQL не подключается
10 Ограничения на запросы в 1C V 7.7
6 Кто работал(ет) с 1с архив?
3 Как оформить переподажу товаров?
12 Упрощёнка
9 Насройка 1С версии 7 под WINDOWS XP
4 Вертикальный текст в "шапке" отчета
4 Как убрать рисунок при загрузке 1с?
4 Загрузка ТТН из EXEL в 7.7
14 Ключи для каждой компоненты
37 последнее обновление к 1с расчет
24 При просмотре перед печатью "вылетает" 1С
8 Тестирование и исправление ИБ
19 А где в 1С квадратные корни, степени и прочая подобная лабуда?
20 Знатокам и/или столкнувшимся: Два пл.счетов - два учета - управленч. и бух.
15 Порядок сортировки базы не соответсвует системному
5 Импорт данных в MYSQL
5 ЗиК Шаблоны проводок Как ускорить процесс ввода?
10 Докумет может содержать более 1 операции?
8 Выполнение бухгалтерского запроса
44 Почему сбрасыывается результат изменений внесенных вручную в поля ввода?
22 ISO 9001 - 2000 и 1С Предприятие
10 Как узнать какая высота выведенной строки?
21 ОГРН в ЗиК и Бух 7.7.
30 Список пользователей
8 Реквизит табличной части в отдельном поле ввода
6 Как лучше реализовать в ТиС передачу и возврат ТМЦ из переработки
5 Как установить родителя справочника
18 ЖР юзеров
4 конвертация данных
26 Восстановление случайно удаленного клиента в ТиС 1сV7
15 Как выгружается запрос
11 Продлемы с распечаткой ?
35 Можно ли зафиксировать столбец в таблице
22 Зарплата и кадры для группы фирм
8 как к таблице документа присоединить внешнюю таблицу?
6 Пример с диска ИТС не работает почему?
4 Зависание 1С при использовании ее методов из DLL
35 Как вытащить реквизит справочника из значения субконто в бухзапросе?
7 Если Док.Операция.Дебет.Счет.Найтипокоду("62.1")=1 тогда
11 Объясните пож. как работает код
18 Подскажите в чем ошибка
31 1C запускается через раз
10 ЗиК, в ведомости отрицательные суммы
6 перенос табличной части документа
4 Проблема с запуском второй конфигурации под терминалом
11 Про внедрение ПУБ 2.8
4 как правильно занести северный коэфициент
29 Как сотрудник получает отпуск?
64 Что такое 1С?
2 Перенос базы в другой каталог, пееренастройка "Запуска"
6 Печать на рулон бумаги (матричный принтер)
27 Почему съедаются значения в таблице значений
25 Бухгалтерия.Начисление налога ЕСН
9 Сумма по некоторым строкам из документов
10 Запрос на получение ВСЕХ элементов справочника
13 Программно разрыв страницы в печ форме
46 Как сделать выборку элементов по наименованию?
56 Определение человека по должности
8 Возмещение НДС-а 169-О
15 Как получить список работающих пользователей?
22 ПриУдаленииДокумента(Докум, Режим)
43 Исчезают записи в 1С - возможно-ли такое?
31 Поясните о распространении своих конфигов
4 Помогите заставить работать переключатель в документе
30 1С и другие языки (часть 2)
5 Есть ли смысл использовать РБД?
13 Метод формы
4 О особенностях работы семерки с формами...
4 1С7.7 Торговля и склад "остатки"
6 Как запретить просмотр сожержимого файла
2 IDV7 через OLE
18 Отбор по СпискуЗначений в ТаблицуЗначений документов.
22 а вот интересно может ли 1С исполнить строку?
4 Авансы по взносам в ПФР
9 Вариации на тему самого быстрого способа удаления строк из таблицы значений
21 Как изменить цвет формы обработки?
11 Типовая бухгалтерия
3 Поддерживает ли Моксель гиперссылки?
4 Проблемы с работой по сети SQL брэндмауэр и пр


Ветки форума по версии 8.0:

Ответов Тема
4 необходимо выбрать ОстаткиИОбороты из ДенежныеСредстваКомпании?
4 Константы в 8-ке
4 Подскажите как в 8.0 распечатать рисунок
3 Экспорт ТабличногоДокумента
3 Работа на сервере 1с8.0
2 Как отвязать помеченный на удаление документ от партионного учёта?
4 Для чего нужен объект ПостроительЗапроса?
1 1C8 - запросы - операции над датами
1 Обработки.ОбзорКонфигурации - специфика терминальной сессии?
3 V8: Вопросы по устройству периодических регистров сведений
3 Передача параметра в форму элемента справочника
7 Hабота трех пользователей в бухгалтерии помогите!
2 Не открывается в демо УТ документ Поступление товаров
1 Как проверить открыта ли форма
1 Как в ИТОГИ...ПО сделать итог одной колонки по данным из других?
16 Личные финансы
3 Как из 1С 8 сделать выгрузку в SQL базу
2 Как повешать процедуры модуля приложения на кнопки интерфейса?
3 Открытие подч. справ. в табличной части на основе род. справ. в шапке
38 Серийные номера в восьмерке
3 Защита от редактирования
4 Как зазиповать файл EXCEL в 1C?
6 Как программно закрыть текущую форму документа ?
10 Отбор в карточке счета не по субконто а, по реквизитам субконто
86 OFF: Что нужно для того, чтобы начать изучать восьмерку?

Смелее задавайте вопросы по 8.0 и 7.7 на форуме www.forum.mista.ru

Используйте поиск и отбор по рубрике - это очень удобно,
а также экономит наше и ваше время.

Объекты конфигурации справочники, документы, отчеты, регистры, бухгалтерский учет, расчет
Приемы программирования встроенный язык, дата-время, запросы, таблица значений, список значений, формы, файловая система, внешние обработки, внешние компоненты, интернет-технологии, обмен данными, OLE и COM, торговое оборудование
Типовые конфигурации бухгалтерия 7.7, Торговля и склад 7.7, Зарплата и кадры 7.7, Управление торговлей 8.0, Управление персоналом 8.0, УПП 8.0
Администрирование установка, ключи защиты, безопасность, производительность, особенности версии, железо и сети
Общие вопросы архитектура, политика, обучение и сертификация, законодательство, обновление и ИТС, конкуренты
 

См. также:
1С:Предприятие 7.7: учебник, курс лекций, статьи, ссылки
Книга "Разработка в системе 1С:Предприятие 8.0" - http://www.v8.1c.ru/book/v8develop.htm

Официальный сайт рассылки - www.mista.ru
Волшебный форум -
www.forum.mista.ru,
Форум по 1С - http://www.forum.mista.ru/index.php?forum=1c
Архив выпусков этой рассылки - http://www.mista.ru/subscribe

Новое!
Раздел форума исключительно по 8.0
http://www.forum.mista.ru/index.php?forum=1c&v8=1

С уважением,
Станислав Митичкин (Волшебник)
stasmit@mail.ru



http://subscribe.ru/
http://subscribe.ru/feedback/
Подписан адрес:
Код этой рассылки: comp.soft.prog.magic1c
Отписаться

В избранное