«Действиям» icon

«Действиям»


Смотрите также:
Задачи обучения двигательным действиям и развитие двигательного действия в процессе обучения...
О подготовке населения и нештатных аварийно-спасательных формирований гражданской обороны...
Инструкция ответственного за пожарную безопасность Инструкция по действиям должностных лиц при...
А. В. Корячко 2011 года...
Программный доклад...
Посвящается Т. И. Ефремовой...
Программа День 1-й...
Программа День 1-й...
10: 00-10: 10 Вопросы и ответы. 10: 10-10: 30...
-
Первый канал, Новости, 31. 03. 2005, 15: 00: 00 12...
Жизнь вениамина франклина автобиография...



Загрузка...
страницы:   1   2   3   4   5   6   7   8   9
скачать
Книга знаний kb.mista.ru


Файлы 60-79



Прокрутка сообщений! 11

Начало 11

Баловство 11

Монитор 12

История 13

strCutLength() 13

Опять к «Действиям» 14

Кислотно-щелочной баланс или сбор информации об окружении 17

Что за имя у меня? 17

Что в имени моем тебе надо? 18

Компоненты. 19

Что у нас за «база»? 19

Что у нас еще имеется? 20

Десерт. 20

Как прочитать параметры подключения 1с к SQL 21

Играем в Жизнь 23

Правила игры 23

Дизайн 24

Он сказал: "Поехали", и махнул рукой 28

Раскраска 32

Ловушка 33

Панель управления 37

Random 38

Begin 40

Недокументированная функция template 41

Finish 45

Save & Load 45

Делаем «гляделку» с помощью одинСи. The first part (Preview). 61

Дизайн. 61

Диски. 62

Файлики. 63

Moved. 66

Выбираем диск. 68

Делаем в ТЗ «double click». 68

Вместо заключения. 69



http://www.kb.mista.ru/article.php?id=60


^ Сеть знаний

Сеть знаний - это граф, вершины которого - понятия, а дуги - связи между ними. Граф должен позволять одним кликом переходить от одного понятия к другому.




Автор статьи: Волшебник | Редакторы:
Последняя редакция №10 от 29.11.05 | ^ История
URL: http://kb.mista.ru/article.php?id=60





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

История проекта:
^ ИИ: Есть идея сделать Сеть Знаний по 1С
OFF: Есть идея сделать Сеть Знаний по 1С
^ OFF: Первая бета-версия движка для Сети знаний




Книга знаний: Функции Сети знаний




Наполнение сети знаний может производиться следующими способами:

1. Вручную (ввод новых понятий и связей)
2. На основе справочника, например, синтакс-помощника.
3. На основе статистического подхода, например, используя слова-уточнения при поиске по форуму www.forum.mista.ru или nigma.ru
4. Автоматически на основе правил Если-То (продукционный подход)

Эти подходы могут применяться в любой комбинации с окончательной ручной корректировкой.




Посмотреть можно здесь:
http://1c.progmer.ru  - сама сеть (навигация).
http://1c.progmer.ru/manager - менеджер, позволяющий добавлять понятия и связи.

Тестовый логин - test, пароль - 123.




Автор идеи: Станислав Митичкин (Волшебник), stasmit@mail.ru
Автор движка: Доброгорский Виктор (ProgMer), progmer@mail.ru




См. также:

Поисковые системы с кластеризацией:
http://www.nigma.ru
http://mooter.com

Визуализация графов:
http://mista.ru/dot
http://touchgraph.sourceforge.net

Semantic Web:
http://ru.wikipedia.org/wiki/Semantic_Web
http://ezolin.pisem.net/logic/semantic_web_rus.html

http://www.w3.org/2001/sw/ (англ.)
http://www.semanticweb.org/ (англ.)


http://www.kb.mista.ru/article.php?id=62


^ Внешние компоненты 1С на .NET: работа с типами 1С:Предприятия

В статье описаны приемы работы с интерфейсом AppDispatch (который позволяет обращаться из ВК к глобальному модулю и данным 1С по технологии OLE Automation), передача параметров ссылочного типа (документы, справочники и т.п.) в/из ВК и приемы предотвращения зависания 1С в памяти. К статье приложен работающий пример тестовой внешней компоненты на VB.NET.




Автор статьи: romix | Редакторы:
Последняя редакция №4 от 18.02.06 | История
URL: http://kb.mista.ru/article.php?id=62





Ключевые слова: AppDispatch, OLE, .NET, VB.NET, зависает в памяти, остается в памяти, освобождение памяти, Marshal.Release, Option Strict On disallows late binding, сборщик мусора, ReleaseComObject


Это продолжение статьи
^ Книга знаний: Написание внешних компонент для 1С на VB.NET и C#

Материал основан на документации 1С «Технология создания внешних компонент», статье с диска ИТС, faq Соарона и собственных экспериментах. Чтобы отыскать требуемые примеры кода, используйте характерные ключевые слова в поисковых системах: AppDispatch, IDispatch, сообщения об ошибках и т.п.

Поправки и дополнения приветствуются.

^ Обращение к 1С из ВК по OLE Automation


Предположим, что я хочу обратиться из внешней компоненты к справочнику товаров.
Нет проблем:

Dim obj0 As Object


obj0 = obj1C.CreateObject("Справочник.Товары")

obj0.ВыбратьЭлементы()

obj0.ПолучитьЭлемент()

MessageBox.Show("Товар: " + obj0.Наименование)


Не правда ли красиво – свойства и методы написаны по-русски.
Таким же способом можно обращаться к глобальному модулю и вообще делать все, что позволяет делать OLE-доступ к 1С. Необходимо правильно объявить переменную obj1C, о чем написано ниже. Для простоты освоения вы можете сразу загрузить «подопытный» работающий пример, и попытаться проделать с ним несколько экспериментов.

^ Option Strict On disallows late binding

Однако, чтобы это стало возможным, в свойствах проекта вырубаем «строгий режим» типизации переменных:

OptionStrict = "Off"


Немного подумав, почему VB.NET ругается на «Option Strict On disallows late binding», я заменил эту настройку в файле с расширением .vbproj. Поскольку все настройки теперь хранятся в XML, а мне лениво ползать по меню, я проделал эту настройку текстовым редактором FAR.

^ Объявление переменной для AppDispatch

Глобальную переменную obj1C я определяю следующим образом:

Dim obj1C As Object

   
И инициализирую (в методе внешней компоненты) ее так:

obj1C = V7Data.V7Object.AppDispatch


Свойство V7Data.V7Object ранее (в методе Init) определено как

V7Data.V7Object = pConnection


Где pConnection – параметр этого метода (см. образец кода).

Как гласит документация (и подтверждает суровая практика) в методе
Init свойство AppDispatch еще не инициализировано. Это и понятно: 1С должна «как следует» загрузиться, после чего сможет предоставлять различные внешние  интерфейсы.

Поэтому я вставляю инициализацию obj1C не в метод Init внешней компоненты, а непосредственно в пользовательский метод:

Case Methods.methTest '//Реализуем метод для тестирования доступа к 1С

If g_flagInit = False Then

obj1C = V7Data.V7Object.AppDispatch

Marshal.Release(Marshal.GetIDispatchForObject(obj1C))

g_flagInit = True

End If


Основной строчкой здесь является

obj1C = V7Data.V7Object.AppDispatch


Это присвоение нашей переменной ссылки на AppDispatch.

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

Ниже по тексту идет уже непосредственная работа с объектом 1С:

Dim obj0 As Object


obj0 = obj1C.CreateObject("Справочник.Товары")

obj0.ВыбратьЭлементы()


и т.д.

^ Предотвращение зависания 1С в памяти

Marshal.Release – метод, который уменьшает счетчик ссылок на obj1C (иначе 1С, подобно призраку, зависает в памяти, и снимается только диспетчером задач по Ctrl-Alt-Del – Диспетчер задач, вкладка Процессы...).

В других средах разработки, например, Delphi, требуется колдовать с _AddRef – здесь же колдовство и танцы с бубнами показали единственный рабочий вариант, при котором призрак зависшей (как “Ghost in the Shell”) 1С не норовит остаться в памяти ПК.

^ Передача агрегатных объектов в ВК

Предположим, что я хочу передавать во внешнюю компоненту не только строки и числа, но и, например, ссылки на элементы справочников. А также получать их же обратно из 1С.

Для тестирования этого режима работы я добавляю во внешнюю компоненту еще несколько методов, которые из кода 1С 7.7 выглядят следующим образом:

//*******************************************

Процедура Выполнить()

net.УстановитьЗначение(ВыбТовары);

зн=net.ПолучитьЗначение();

Сообщить("зн="+зн);

net.Закрыть();

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

Значение ВыбТовары – это ссылка на элемент справочника «товары». Я передаю ее в ВК методом net.УстановитьЗначение(ВыбТовары), а затем получаю это же значение из ВК методом зн=net.ПолучитьЗначение();

Вызов net.Закрыть(); я использую, как вы уже, наверное, догадались, для предотвращения зависания 1С в памяти после закрытия. Вот как я реализую эти тестовые методы:

Case Methods.methSetValue

'//Реализуем метод для установки значения из 1С в внешнюю компоненту

g_var = paParams.GetValue(0)


Case Methods.methGetValue

'//Реализуем метод для чтения значения в 1С из внешней компоненты


pvarRetValue = g_var


Case Methods.methClose

'//Реализуем метод для очистки переменной (иначе 1С зависает в памяти)


g_var = Nothing

GC.Collect()

GC.WaitForPendingFinalizers()

Глобальная переменная g_var определена так:

Dim g_var As Object


Или, более строго:

Dim g_var As Object

Поскольку наблюдаются проблемы с зависанием 1С в памяти, я очищаю ссылочную переменную g_var, присваивая ей «пустое» значение Nothing, после чего запускаю «сборку мусора»:

GC.Collect()

GC.WaitForPendingFinalizers()


Так сказать, глобальная зачистка территории от призраков.

Способ зачистки, который рекомендует YuriPar
ВК 1С на .NET: призрак OLE-доступа или почему 1С зависает в памяти

10 - 30.12.05 - 11:30
В конце дай Marshal.ReleaseComObject(AppDispatch). Все освободится, Сборщик мусора сам все уберет.




Пример исходного кода внешней компоненты для скачивания:

http://x-romix.narod.ru/vb_OLE.zip
(скачивать ЛЕВОЙ кнопкой мыши, 53К).
Для компиляции примера требуется Visual Studio.NET с установленным VB.NET.


http://www.kb.mista.ru/article.php?id=63


^ Нестандартные решения стандартными средствами

Я думал долго целых десять минут. Не верите. Ну, хорошо, пять минут. Это не статья, это просто вступление. Правда, не знаю, во что я вступаю. И все-таки попробую. Ибо как говорил товарищ Сталин: «Попытка не пытка! Правда, товарищ Берия?»




Автор статьи: skunk | Редакторы: Волшебник
Последняя редакция №11 от 12.01.06 | ^ История
URL: http://kb.mista.ru/article.php?id=63





Вступление


Я думал долго целых десять минут. Не верите. Ну, хорошо, пять минут. Это не статья, это просто вступление. Правда, не знаю, во что я вступаю. И все-таки попробую. Ибо как говорил товарищ Сталин: «Попытка не пытка! Правда, товарищ Берия?»

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

Глумиться будем не по-детски, а по-взрослому, то бишь серьезно. Так что маленьким детишкам и слюнявым мальчишкам вход строго воспрещен.

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

Если у вас есть какие-нибудь оригинальные решения и вы желаете их опубликовать, можете присылать их мне. Я по возможности буду рассматривать и выкладывать в КЗ.

Также приветствуется интересные вопросы. Правда сразу говорю сорри, если ответ не получите «завтра». Ведь не боги горшки обжигают, это мы их обжигаем для наших богов. У меня жена, дети, ну и все тому подобное. А их надо кормить. То есть зарабатывать денежку.

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

Сорри за английский синтаксис. Не хочу или не могу писать на русском, думайте сами. Кто не понимает английского, рекомендую, переводчик Бажитова Алексея, он же Рупор Абсурда, он же еще фих знает кто. Скачать его тулузу для транслита можно с его сайта http://www.absur.da.ru/por. Для Левы Баранова даю линк прямо на тулузу http://avb1c.narod.ru/files/translate.zip

Ну, вроде все. Как говорится, с почином.


Урок №1
^ Книга знаний: Прокрутка сообщений!

Урок №2
Книга знаний: Ловим Фокус.

Урок №3
^ Книга знаний: Кислотно-щелочной баланс или сбор информации об окружении

Урок №4
Книга знаний: Играем в Жизнь

Урок №5
^ Книга знаний: Делаем «гляделку» с помощью одинСи. The first part (Preview).


http://www.kb.mista.ru/article.php?id=64





оставить комментарий
страница1/9
статьи
Дата02.10.2011
Размер1,68 Mb.
ТипКнига, Образовательные материалы
Добавить документ в свой блог или на сайт

страницы:   1   2   3   4   5   6   7   8   9
отлично
  1
Ваша оценка:
Разместите кнопку на своём сайте или блоге:
rudocs.exdat.com

Загрузка...
База данных защищена авторским правом ©exdat 2000-2017
При копировании материала укажите ссылку
обратиться к администрации
Анализ
Справочники
Сценарии
Рефераты
Курсовые работы
Авторефераты
Программы
Методички
Документы
Понятия

опубликовать
Загрузка...
Документы

Рейтинг@Mail.ru
наверх