Класс 1с++ для работы с ссылками

10.04.09

Разработка - Инструментарий разработчика

Класс для работы с ссылками: поиск и замена ссылок, а также сохранение списка объектов во временной таблице

Скачать исходный код

Наименование Файл Версия Размер
references.zip
.1239310748 25,41Kb
118
.1239310748 25,41Kb 118 Скачать

Для работы необходимо в каталог исполняемых файлов или каталог ИБ скопировать
файл внешней компоненты 1с++. Необходима версия icpp/3.0 или старше.
(скачать можно с сайта компоненты).

также необходимо установить
провайдер фирмы Microsoft: VFP OLE DB povider v9.

Установка: файл DefCls.prm скопировать в КаталогИБ,
файл Ссылки.cls - в КаталогИБ\Classes (создать, если нет).

Описание класса:
Атрибуты:                              
ПриставкаСостояние
СоздатьВременнуюТаблицу
ИспользоватьТранзакции
КоличествоЗаписейОбъектовВТранзакции
ОтключитьЗаписьВЖурналРегистрации

все - чтение/запись
описание предназначения - в методах.

Методы:
---------------------
Функция УложитьСписокОбъектов(Запрос1спп,Фильтр,ИмяКурсора,
    ВключатьГруппы=0,ЭтоРодитель=0,ВключатьВложенные=1)


     
сохраняет список объектов во временной таблице как в методе УложитьСписокОбъектов объекта ODBCRecordSet или OLEDBCommand  с
следующими дополнениями и ограничениями:    
- идентификаторы объектов из списка значений Фильтр сохраняются во временной таблице ИмяКурсора.
Таблица имеет три поля: def1 Char(2)l,def Char(4)l,val char(9),
где
def1 документов равен "O1", для справочников "B1" (первые два знака в поле таблицы для реквизитов типа "Неопределенный");
def - идентификатор вида документа или справочника;                                                                                                                               
val - идентификатор объекта

- при помощи атрибута  СоздатьВременнуюТаблицу определяется вид временной таблицы
0 - курсор в памяти , 1- временная таблица. По умолчанию - 0

- если в переданном списке значений Фильтр присутствуют группы справочника, то во временную таблицу
попадут все входящие в эту группу элементы

Ограничения:
Обрабатыватся объекты только типов Документ и Справочник. Остальные значения в списке значений Фильтр игнорируются.

Возвращает: список значений СписокВидов, в котором перечислены все присутствующие в Фильтр виды объектов:
"Документ", "Документ.<Вид>","Справочник", "Справочник.<Вид>"

Параметры:                                                           
Запрос1спп - объект OLEDBCommand
Фильтр - список значений объектов типа "Справочник", "Документ" или объект типа "Справочник", "Документ"
ИмяКурсора - имя временной таблицы;
ВключатьГруппы - включать группы справочника. По умолчанию - 0
ЭтоРодитель - необязательный, по умолчанию - 0.
    Используется в том случае, если передано пустое значение типа определенного справочника.
    При этовозникает два варианта: если ЭтоРодитель=0, то в курсор попадает ПустойИд
    иначе - в курсор попадают все корневые элементы справочника (у которых родитель пустой);
ВключатьВложенные - необязательный, по умолчанию - 1.   
    Если установить значение параметра в 0, то будут обработаны только элементы, непосредственно
    входящие в переданные группы справочника, без обработки вложенных групп.
   

---------------------
Функция НайтиСсылки(Фильтр,табСсылок)    


   
Поиск ссылок по переданному фильтру
По сравнению с штатным поиском ссылок, помимо ускорения (примерно
в 3-10 раз), получаем в таблице ссылок прямое указание не только на
ссылающийся объект, а также на атрибут этого объекта.
Поиск ссылок производится в следующих таблицах:
1sjourn, 1sconst, 1sentry, sc*, dh*, dt*, cj*, ra*.

Возвращает: 0 - в случае неудачной инициализации объекта OLEDBCommand , 1 - все успешно
Атрибут ПриставкаСостояние - строковая приставка выводимого в строке состояния сообщения.
                                
Параметры:
Фильтр - список значений объектов типа "Справочник", "Документ" или объект типа "Справочник", "Документ"
табСсылок - формируемый методом объект типа "ИндексированнаяТаблица" со следующими полями:

Объект - объект, на который ссылаются
Ссылка - объект, который ссылается
LineNo - номер строки документа или номер проводки в операции
Атрибут - атрибут ссылки
ТипСсылки - тип объекта. Принимает следующие значения:
    Константа, Периодический, Операция, Документ.<Вид>, Справочник.<Вид>,
    Регистр.<Вид>, ЖурналРасчетов.<Вид>

                           
---------------------
Функция ЗаменитьСсылки(таб_замены)

Заменяет ссылки в объектах типа "Справочник", "Документ", "Операция".
Для замены ссылок в Регистрах и Журналах расчетов после применения процедуры необходимо перепроведение документов.
Примечание: не заменяет значения констант и периодических реквизитов, а также владельцев для подчиненных справочников.

Возвращает: 0 - в случае неудачной инициализации объекта OLEDBCommand , 1 - все успешно


Параметры:                                                  
таб_замены - объект типа "ТаблицаЗначений" с колонками
    ОсновнойОбъект -  объект, который будет записан вместо дубля
    Дубль - объект, который будет заменен в ссылках

Управляющие атрибуты:
ИспользоватьТранзакции - по умолчанию 0. При установке атрибута запись объектов производится в транзакции,
что может осложнять работу другим пользователям
КоличествоЗаписейОбъектовВТранзакции - по умолчанию 50. Количество объектов, которые будут записаны в одной
транзакции
ОтключитьЗаписьВЖурналРегистрации - по умолчанию 0 (запись в журнал регистрации производится).

----------------

Публикую первый свой класс, поэтому буду признателен за указание ошибок в оформлении и проч, и конечно же, ошибок в работе.

См. также

Консоль запросов

Инструментарий разработчика Платформа 1С v7.7 Конфигурации 1cv7 Абонемент ($m)

Консоль запросов к базе SQL, не требующая внешних компонент

10 стартмани

29.04.2015    21638    54    Gvozdod    8    

15

StartManager 1.4 - Развитие альтернативного стартера

Инструментарий разработчика Платформа 1С v7.7 Платформа 1С v8.3 Абонемент ($m)

Очередная редакция альтернативного стартера, являющегося продолжением StartManager 1.3. Спасибо всем, кто присылал свои замечания и пожелания, и тем, кто перечислял финансы на поддержку проекта. С учетом накопленного опыта, стартер был достаточно сильно переработан в плане архитектуры. В основном сделан упор на масштабируемость, для способности программы быстро адаптироваться к расширению предъявляемых требований (т.к. довольно часто просят добавить ту или иную хотелку). Было пересмотрено внешнее оформление, переработан существующий и добавлен новый функционал. В общем можно сказать, что стартер эволюционировал, по сравнению с предыдущей редакцией. Однако пока не всё реализовано, что планировалось, поэтому еще есть куда развиваться в плане функциональности.

1 стартмани

23.04.2014    166060    1868    Alexoniq    1596    

496

Tray Informer

Инструментарий разработчика Платформа 1С v7.7 Платформа 1С v8.3 Россия Абонемент ($m)

Согласитесь, что окно стандартное сообщений в 1С иногда приносит больше неудобств, чем пользы. И тем более разные "Предупредить"... Что с этим окном только не делают! Его отцепают от формы, делают маленьким, умудряются спрятать за границы экрана. А потом звонят программистам с претензией, что документ почему-то не проводится, отя ничего и не пишет. У вас такого не было? А вот у нас было и не раз )))

1 стартмани

04.09.2013    32942    61    O-Planet    78    

49

Изменение структуры баз 1С 7.7 без долгой реструктуризации. Часть 1. Справочники

Инструментарий разработчика Платформа 1С v7.7 Конфигурации 1cv7 Абонемент ($m)

На днях встретил вопрос на форуме про возможность внесения изменений в конфигурацию без долгого сохранения в рабочей базе большого объема. Вот решил поделиться опытом, как это делал я. База у нас была объемом порядка 120 Гб. К базе обращался сайт в режиме 24/7, поэтому важно было быстро сохранять изменения и желательно без последующего монопольного запуска для восстановления индексов и процедур и без отключения пользователей от базы. Это первая часть статьи и посвящена она справочникам. С одной стороны - это самый простой объект, с другой стороны, именно про справочник спрашивалось на форуме. Если статья будет востребована, то я напишу аналогичные про документы, регистры и может еще что.

1 стартмани

13.08.2013    21258    Reptile    5    

35

v7.7 1CDialogControls: Инструмент в помощь разработчику на 7.7.

Инструментарий разработчика Платформа 1С v7.7 Конфигурации 1cv7 Абонемент ($m)

Давным давно, когда я еще плотно писал на 7.7 работа с формами была мучительной и неудобной. Приходилось каждый элемент выкладывать, выравнивать на форме ручками, прописывать код в модуле. Иногда при разработке очередной формы приходила в голову мысль: "а где-то я уже похожее делал..." и начинался мучительный поиск подходящего кода в своих запасах........

1 стартмани

21.02.2013    18064    35    MarSeN    14    

16

[Разработчику] Любая таблица значений в OLAP

Инструментарий разработчика Платформа 1С v7.7 Конфигурации 1cv7 Абонемент ($m)

Анализируем различные данные в 1С, используя OLAP-технологии со всеми прелестями. Т.е. наглядное отображение данных, быстрые расчеты, горизонтальные и вертикальные группировки любой вложенности, удобная фильтрация, Drag'n'Drop и ещё много приятных вещей от MS. Обработка на входе принимает практически любую таблицу значений (ТЗ в которой колонкам указаны типы значений, строка, число и т.п.), на выходе имеем на форме 1С сводную таблицу и график по этой ТЗ, с которой работаем, как и в Excel со сводной таблицей и диаграммой. Взял за основу разработку «OLAP Анализ счёта» ( http://infostart.ru/public/14964/ ) от JohnyDeath и переделал под любую ТЗ. Опционально используется «Прогресс бар для 1С 77» (http://infostart.ru/public/14061/ ) от Gmix.

1 стартмани

21.12.2012    36129    51    venger    7    

23

Библиотека кода 1С 7.7 (накопленная за 8 лет)

Инструментарий разработчика Платформа 1С v7.7 Конфигурации 1cv7 Абонемент ($m)

Весь код на 1С 7.7, собранный для повторного использования за 8 лет работы.

10 стартмани

25.11.2012    35015    248    adhocprog    51    

70
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. Ёпрст 1063 10.04.09 09:11 Сейчас в теме
РукописныйФильтр
ацская процедурка :_)
+
2. waol 313 10.04.09 10:54 Сейчас в теме
3. victuan 4237 03.12.09 14:47 Сейчас в теме
"Для замены ссылок в Регистрах и Журналах расчетов после применения процедуры необходимо перепроведение документов.
Примечание: не заменяет значения констант и периодических реквизитов, а также владельцев для подчиненных справочников."
Низачот :evil:
Даже смотреть не стану.
С 1с++ можно было б замутить и без перепровдения. Тогда б цены не было решению!
+
4. waol 313 03.12.09 14:50 Сейчас в теме
замути - кто ж против
+
Оставьте свое сообщение