Кто заблокировал объект ? 7.7 (SQL/DBF)

Публикация № 74138

Администрирование - Администрирование данных 1С

Обработка блокировки объекта в базе для SQL/DBF варианта.

 

 

 

 

 

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

 

 

 

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

Данная метода позволяет автоматом получить имя пользователя в окошке сообщений:

 

 

Для её реализации требуется загрузка внешних компонент:

Formex.dll

1cpp.dll

для DBF версии еще и

1sqlite.dll

Идея очень простая - при начале работы системы проверяется наличие таблички в базе (в SQL - табличка на сервере SQL, для DBF -  база sqlite и таблички в ней), в предопределенных событиях формекса пишется имя пользователя и ид-объекта в табличку блокировок, при обработке блокировки - показывается этот пользователь.

Метода не новая, просто мало кто выкладывал готовых решений.

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

Успехов.

ЗЫ: для любителей "универсальности", предлагаю объединить оба метода в один самостоятельно.

ЗЫЫ: в монопольном режиме, база блокировок не нужна, как и их обработка в нижеописаных процедурах. Для этого

в ПриНачалеРаботыСистемы нужна всего лишь проверка на

Если МонопольныйРежим()=0 Тогда

       //тут создать объекты запроса/базы /табличек и прочий мусор

       База = ;

       Запрос = ;

       ТекстГм = " сюда пишем текст процедур ПриНачалеБлокировкиОбъекта и ОбработкаБлокирокиОбъекта";

       гСервис= СоздатьОбъект("Сервис");
       гСервис.ДобавитьГлобальныйМодуль(ТекстГМ);
 КонецЕсли;


ЗЫЫЫ: принимаю пожертвования в качесте благодарности на

яндекс деньги 41001277400750

wmr R285258832971

 


Версия для DBF-варианта:

Перем запросSQLLite;
Перем
глМД;
//======================================================================
Процедура ПриНачалеБлокировкиОбъекта(Объект)
   
Тип = ТипЗначенияСтр(Объект);
    Если (
Тип = "Документ")или(Тип="Справочник") Тогда
       
ИДОбъекта = глМД.ЗначениеВДлиннуюСтрокуБД(Объект);
       
ТекстЗапроса = "
        |    INSERT or REPLACE INTO БазаБлокировок
        |    VALUES ('"
+ИДОбъекта+"','"+ПолноеИмяПользователя()+"')
        |-- для типовой торговли можно пользовать глПользователь:
        |--    VALUES ('"
+ИДОбъекта+"','"+глПользователь.Наименование+"')
        |"
;
       
фл = 0;
        Пока
фл=0 Цикл
            Попытка
               
запросSQLLite.ВыполнитьЗапрос(ТекстЗапроса);
               
фл=1;
            Исключение
            КонецПопытки;
        КонецЦикла;
    КонецЕсли;
КонецПроцедуры
//======================================================================
Процедура ОбработкаБлокировкиОбъекта(Объект, Повторить, ДопТекст)
   
Тип = ТипЗначенияСтр(Объект);
    Если (
Тип = "Документ")или(Тип="Справочник")Тогда
       
ИДОбъекта = глМД.ЗначениеВДлиннуюСтрокуБД(Объект);
       
фл=0;
        Пока
фл=0 Цикл
            Попытка
               
ИмяВредителя = запросSQLLite.ВыполнитьЗапрос("Select База.Пользователь From БазаБлокировок  База  Where База.ИДОбъекта = '"+ИДОбъекта+"'",0);
               
фл=1;
            Исключение
            КонецПопытки;
        КонецЦикла;
        Сообщить(
"" + Объект + " открыт пользователем " + ИмяВредителя,"!");
        //для красоты, можно писать так, заместо Сообщить:

        ДопТекст ="" + Объект + " открыт пользователем " + ИмяВредителя;

    КонецЕсли;
КонецПроцедуры
//======================================================================
Процедура ПриНачалеРаботыСистемы()
    ЗагрузитьВнешнююКомпоненту("1cpp.dll");
    ЗагрузитьВнешнююКомпоненту("formex.dll");
    ЗагрузитьВнешнююКомпоненту(
"1sqlite.dll");
   
база = СоздатьОбъект("SQLiteBase");
    Если ФС.
СуществуетФайл(КаталогИБ()+"ExtForms\")=0 Тогда
        ФС.
СоздатьКаталог(КаталогИБ()+"ExtForms\");
    КонецЕсли;
    Если ФС.
СуществуетФайл(КаталогИБ()+"ExtForms\DB_SQLite\")=0 Тогда
        ФС.
СоздатьКаталог(КаталогИБ()+"ExtForms\DB_SQLite\");
    КонецЕсли;
   
ИмяБД = КаталогИБ()+"ExtForms\DB_SQLite\baza.db3";
   
глМД = СоздатьОбъект("MetaDataWork");
   
база.Открыть(ИмяБД);
   
запросSQLLite = база.НовыйЗапрос();
    //запросSQLLite.ВыполнитьЗапрос("PRAGMA journal_mode=WAL"); //это прописать, ежели база в терминале
    запросSQLLite.ВыполнитьЗапрос("PRAGMA journal_mode=OFF");
    ТекстЗапроса ="
    |Create  table if not EXISTS
    |БазаБлокировок (
    |   ИДОбъекта varchar(13) primary key not null,
    |   Пользователь TEXT
    |)"
;
   
фл = 0;
    Пока
фл=0 Цикл
        Попытка
           
запросSQLLite.ВыполнитьЗапрос(ТекстЗапроса);
           
фл=1;
        Исключение
        КонецПопытки;
    КонецЦикла;
    Если МонопольныйРежим()=
1 Тогда
       
запросSQLLite.ВыполнитьЗапрос("delete from БазаБлокировок");
    КонецЕсли;
КонецПроцедуры

 


Версия для SQL-варианта:

 

// Глобальные переменные необходимые работы
Перем запросSQL;
Перем глМД;
//======================================================================
Процедура ПриНачалеБлокировкиОбъекта(Объект)
    Тип = ТипЗначенияСтр(Объект);
    Если (Тип = "Документ")или(Тип="Справочник") Тогда
        ИДОбъекта = глМД.ЗначениеВДлиннуюСтрокуБД(Объект);
        // для типовой торговли можно пользовать Юзверь =  глПользователь.Наименование:
        Юзверь = ПолноеИмяПользователя();
        ТекстЗапроса = "
        |IF Exists (SELECT * FROM Blocks WHERE ИДОбъекта = '"
+ИДОбъекта+"')
        |     BEGIN
        |         UPDATE Blocks
        |            SET
        |               ИДОбъекта = '"
+ИДОбъекта+"', Пользователь  = '"+Юзверь+"'
        |            WHERE ИДОбъекта = '"
+ИДОбъекта+"'
        |     END
        |ELSE
        |      BEGIN
        |           INSERT INTO Blocks (ИДОбъекта, Пользователь)
        |          VALUES ('"
+ИДОбъекта+"','"+Юзверь+"')
        |      END
        |"
;
        запросSQL.ВыполнитьСкалярный(ТекстЗапроса);
    КонецЕсли;   
КонецПроцедуры
//======================================================================
Процедура ОбработкаБлокировкиОбъекта(Объект, Повторить, ДопТекст)
    Тип = ТипЗначенияСтр(Объект);
    Если (Тип = "Документ")или(Тип="Справочник")Тогда
        ИДОбъекта = глМД.ЗначениеВДлиннуюСтрокуБД(Объект);
        ИмяВредителя = запросSQL.ВыполнитьСкалярный("Select Пользователь From Blocks (nolock) Where ИДОбъекта = '"+ИДОбъекта+"'");
        Сообщить("Объект:" + Объект + " открыт пользователем " + ИмяВредителя,"!");//сообщать не обязательно, если что
        Повторить =1;
        ДопТекст = "Объект:" + Объект + " открыт пользователем " + ИмяВредителя;
    КонецЕсли;
КонецПроцедуры
//======================================================================
Процедура ПриНачалеРаботыСистемы()
   
    ЗагрузитьВнешнююКомпоненту("1cpp.dll");   
    ЗагрузитьВнешнююКомпоненту("formex.dll");   

    глМД = СоздатьОбъект("MetaDataWork");
    запросSQL = СоздатьОбъект("ODBCRecordSet");
    ТекстЗапроса ="
    |if object_id('dbo.Blocks','U') is null
    |  create table dbo.Blocks
    |                 (ИДОбъекта varchar(13) primary key not null,
    |                  Пользователь TEXT)
    |;"
;

    запросSQL.ВыполнитьСкалярный(ТекстЗапроса);   

    Если МонопольныйРежим()=1 Тогда
        запросSQL.ВыполнитьСкалярный("delete from dbo.Blocks");
    КонецЕсли;
КонецПроцедуры

 

 

 

Специальные предложения

Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. JohnyDeath 298 13.08.10 11:35 Сейчас в теме
Хорошо!
Я по аналогии давно хочу сделать "журналирование изменений", но меня терзает один вопрос. Что будет происходить, если один пользователь записывает данные в базу Sqlite и одновременно второй пользователь также начнет писать свои данные.
Не попадал на такое? Как бы красиво и без потерь разрулить подобные ситуации?
3. Ёпрст 1041 13.08.10 11:40 Сейчас в теме
(1) попадал, поэтому и все выполнения запросов обёрнуты в цикл + попытка

А так ошибка будет "database is locked"
И т.к таких ошибок по ЖР было за день не так много (штук 10 всего) при 50 пользователях, то такое решение оправдано..

Щас вроде проблем нет.
+ новая версия ВК и режим "PRAGMA journal_mode=WAL" ускорили процессс записи в базу.


5. JohnyDeath 298 13.08.10 11:51 Сейчас в теме
(3)
новая версия ВК и режим "PRAGMA journal_mode=WAL" ускорили процессс записи в базу.

Этот режим вряд ли ускорил запись в базу, просто теперь читатели и писатели не мешают друг другу.
Вот кусок с офф. сайта:
WAL might be very slightly slower (perhaps 1% or 2% slower) than the traditional rollback-journal approach in applications that do mostly reads and seldom write.

Хотя это очень маленькая погрешность и ей можно пренебречь.
6. Ёпрст 1041 13.08.10 12:06 Сейчас в теме
(5) да один хрен.. тут в табличке 2 поля всего.. быстро обновляет табличку.
я забил на блокировку - ошибок блокировок мало цикл вполне оправдан.
2. JohnyDeath 298 13.08.10 11:37 Сейчас в теме
Извиняюсь, толком не посмотрел твой код.
Оказывается, у тебя идет бесконечный цикл попыток записи. Да, это решение проблемы, но какое-то тяжелое (для процессора).
4. Ёпрст 1041 13.08.10 11:42 Сейчас в теме
(2) не.. норм.
Я ж проверил на живых пользователях методу сперва ... и без цикла с попыткой
:)
7. Арчибальд 2711 13.08.10 12:54 Сейчас в теме
Вот если бы система еще сама стучала по голове блокировальщику...
9. Ёпрст 1041 13.08.10 13:18 Сейчас в теме
Добавлю, аналогично можно проверить, кто блокировал объект и при програмной записи..
сделав тот же самый запрос , что и в ОбработкаБлокировкиОбъекта
10. venger 2089 13.08.10 13:29 Сейчас в теме
Можно подумать, но это так, - фантазии, чтобы тому, кто заблокировал объект, выскакивало предупреждение о том, что надо бы объект освободить, так как уже очередь...;-)
11. prolancer 106 13.08.10 15:10 Сейчас в теме
(10) когда известен автор проблемы, можно и по телефону ему позвонить, или докладную шефу на стол...
12. Ёпрст 1041 13.08.10 15:30 Сейчас в теме
(11) да и, если терминалка (или радмин какой-нить), самому закрыть объект..
или сессию срубить..
13. Свой 164 13.08.10 16:21 Сейчас в теме
класс... твои юзеры наверное катаются в масле, окруженные такой заботой программиста :)
14. Ёпрст 1041 13.08.10 16:57 Сейчас в теме
(13) по крайней мере, перестали мне звонить по этой ерунде - рулят сами
15. venger 2089 13.08.10 17:02 Сейчас в теме
(13),(14) Я еще хотел сказать, что он просто о себе заботится, чтоб не дергали по ерунде, а не о пользователях, но опередил в 14-м посте;-)
16. Abadonna 3862 13.08.10 18:31 Сейчас в теме
А ежели просто ограничить время, которое юзер может держать объект открытым?
Одним формексом можно обойтись
17. venger 2089 13.08.10 19:00 Сейчас в теме
(16) Как-бы это через чур жестко;-) Еще таймер обратного отсчета большими красными буквами: "До взрыва осталось: 00:00:03";-) Да и с программной блокировкой тогда как быть?
18. hogik 433 13.08.10 21:12 Сейчас в теме
(16)
"Одним формексом можно обойтись"
- Эту задачу можно решить, вообще, без ВК. ;-)
(0)
Хорошее решение проблемы.
Но, думаю, еще имеет смысл устранять не следствие, а причину. Т.е. запретить пользователю открывать объекты БД в режиме редактирования по двойному щелчку в списках, журналах. Т.е. открывать в режиме просмотра объекта. И случайных проблем с "задним числом" будет меньше... Ведь чаще всего пользователи хотят только посмотреть объект БД, а не изменить его одновременно. Первичный документ, чаще всего, существует в одном экземпляре, на одном рабочем месте... Или не так? ;-)
Dolly_EV; kozorez; +2 Ответить
19. Abadonna 3862 14.08.10 03:54 Сейчас в теме
(18)
- Эту задачу можно решить, вообще, без ВК. ;-)

Что-то сомневаюсь, если только прописывать код в каждый объект, а это не комильфо
20. hogik 433 14.08.10 15:22 Сейчас в теме
(19)
Прописывать надо. Но не в каждый объект. Т.к. до появления "формекса", уже давно, прописано во все объекты вызов глобальной функции решающей схожие алгоритмы в схожих местах. Типа:
Процедура ПриОткрытии() хПриОткрытии(Контекст); КонецПроцедуры
Процедура ПриЗакрытии() хПриЗакрытии(Контекст); КонецПроцедуры
Нас самом деле, еще проще - используется общая функция, типа:
хУсё(КодДействия,Контекст).
Ну, а в конкретном случае данной темы, выполняются по смыслу следующий код, но расширенный на всё типы объектов 1С-а. Еще есть обработка показа списка всех заблокированных объектов.
Процедура ПриОткрытии()
	Если (Форма.ТолькоПросмотр()=0) И (Выбран()=1) Тогда 
		ЗначениеВФайл(КаталогИБ()+СтрЗаменить(ЗначениеВСтрокуВнутр(ТекущийДокумент()),"""","_")+".xxx",ИмяПользователя(),0);
	КонецЕсли;
КонецПроцедуры
Процедура ПриЗакрытии()
	Если (Форма.ТолькоПросмотр()=0) И (Выбран()=1) Тогда 
		ФС.УдалитьФайл(КаталогИБ()+СтрЗаменить(ЗначениеВСтрокуВнутр(ТекущийДокумент()),"""","_")+".xxx");
	КонецЕсли;
КонецПроцедуры        
Процедура Кнопка()
	Если ТекущийДокумент.Выбран()=1 Тогда 
		Предупреждение(ЗначениеИзФайла(КаталогИБ()+СтрЗаменить(ЗначениеВСтрокуВнутр(ТекущийДокумент.ТекущийДокумент()),"""","_")+".xxx",,0));  
	КонецЕсли;
КонецПроцедуры
Показать
21. Abadonna 3862 14.08.10 16:08 Сейчас в теме
(20)
Т.к. до появления "формекса", уже давно, прописано во все объекты вызов глобальной функции решающей схожие алгоритмы в схожих местах. Типа:
Процедура ПриОткрытии() хПриОткрытии(Контекст); КонецПроцедуры

Вот и я про то же. У меня тоже было прописано глПриОткрытии() глПризаписи.
Но ты, по ходу, лет 10 на одной базе сидишь, а у меня их сейчас чуть не по паре новых в день (не считая еще 8х). А прописать формекс у меня сейчас всего две строчки в ГМ, которые не фиг восстановить после обновления. Все остальное работает в ДопГМ, который правь на лету - не хочу
22. Abadonna 3862 14.08.10 16:15 Сейчас в теме
+(21)Вот считай:
Перем Сервис Экспорт; // раз строчка
Процедура ПриНачалеРаботыСистемы()
//....................................
ОткрытьФорму("Отчет",Контекст,КаталогИБ()+"СтартСистемы.ert"); // два строчка
КонецПроцедуры // ПриНачалеРаботыСистемы()
Все остальное делается "на лету"
23. hogik 433 15.08.10 00:51 Сейчас в теме
(21)(22)
Аркадий.
Я же не против "формекса". Естественно, когда много разных конфигураций. Требуется делать обновления. Хочется не заниматься тупой работой. Надо использовать средства, типа, "формекса". А у меня, действительно 10 лет, всего, две конфигурации. Одна в бухгалтерии, в которую я не лезу. И одна, полностью самописная, для основной сферы деятельности конторы. Но эта конфигурация одна на все задачи конторы. От автосервиса до проходной. И база одна на всех. Мне легче, чем тебе, но ооо-чень скучно... :-(
24. Ёпрст 1041 15.08.10 21:19 Сейчас в теме
Ну да.. можно было бы обойтись одним формексом:
ид-объекта получать через ЗначениеВСтрокуУнутрь, а блокировки писать в файло (коть в текстовик, хоть в дбф) и поиск там же..

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

25. hogik 433 15.08.10 23:20 Сейчас в теме
(24)
"Но это как-то не очень."(с)
Да, "без ВК совсем не отловить интерактивное возникновение блокировки"(с). Надо либо "прописывать"(с) в списках/журналах, либо делать кнопку в списках/журналах, либо делать отдельную обработку с кнопкой в панели инструментов. Но пользователю не важно как это сделано если блокировки, такого рода возникают, один раз в неделю. Т.е., скажу еще раз, надо устранять причину. Открывать, по умолчанию, объекты в режиме "только просмотр". А если пользователям необходимо работать одновременно с одним объектом, то в схеме базы данных этот объект уже не один объект. Простой пример. Шапку документа забивает "бухгалтер", а строки документа "кладовщик". Сделать форму документа с закладками - это самое примитивное решение задачи. На самом деле (в нашем примере) шапка документа и строки - это разные объекты. Это в теории... ;-) И не в 1С... :-(
P.S. Повторю еще раз. Вы предложили очень хорошее решение проблемы. И использование этих ВК оправдано на 100%. Т.к., думаю, эти ВК используются в вашей системе не только для решения данной задачи. А, тогда, почему бы их не использовать и в этой задаче... ;-)
26. Ёпрст 1041 16.08.10 08:05 Сейчас в теме
(25) Да, так и есть - вк не только для этой задачи используются.
По-поводу правки, документ может иметь несколько состояний (распечатан/собран/и т.д и т.п) + разные схемы отгрузки.. Все эти доп флаги-реквизиты документа проставляются как правило, обработками. Но документ может быть открыт аналитиком в это время, для правки самого документа. Вот и возникают коллизии.
Не часто, но есть.
31. hogik 433 16.08.10 18:22 Сейчас в теме
(26)
"доп флаги-реквизиты документа проставляются ... обработками"
"документ может быть открыт ... в это время ... для правки самого документа"
Об этом и говорю. Это и означает, что "доп флаги-реквизиты" не должны являются реквизитами документа. Т.е. наблюдается ошибка в проектировании схемы БД.
32. Ёпрст 1041 17.08.10 10:40 Сейчас в теме
(31)Намекаешь, что состояния документов нужно хранить в подчиненном документе ? Или еще где ?
Изменяются не только флаги, но и ключевые реквизиты типа Контрагент/договор/Фирма..
Долго объяснять почему, связано с разными схемами учета.





33. hogik 433 17.08.10 22:07 Сейчас в теме
(32)
Намекаю на, немного, другое. ;-)
Проблемы блокировки документов, последовательности, проведение задним числом, закрытие периодов, само понятие "провести", свертка БД, регистры и т.д. возникает при попытки "автоматизировать" предметную область документами и бух.проводками. Но эта предметная область называется - бухгалтерский учет (и все его разновидности). Судя по Вашим текстам из (26)(32) сообщений, делается попытка автоматизировать не бух.учет, а реальную жизнь конторы. И использовать, для этого, структуры схемы БД типа документ - не совсем логично. Думаю, документ должен появляться на конечном этапе всей "хоз.операции" исключительно для взаимодействия с внешним контрагентом, в виде распечатки, а не в БД как единое целое. Но, это, опять не про 1С... :-(
34. Ёпрст 1041 18.08.10 13:40 Сейчас в теме
(33) почитал ваши посты в других обсуждениях, примерно понял, об чем речь..
К сожалению, в данный момент переделывать всё и уходить от логики, заложенной еще самой 1с не представляется возможным..
Да и на снеговик пытаются упорно толкнуть.
27. victuan 3606 16.08.10 08:27 Сейчас в теме
Аж три ВК! Для такой рутинной задачи
28. Ёпрст 1041 16.08.10 08:53 Сейчас в теме
(27) см. (24)... достаточно одной.. - формекс.
29. victuan 3606 16.08.10 09:31 Сейчас в теме
(28) "можно было бы обойтись одним формексом"
Так ведь не обошелся же :D
30. Ёпрст 1041 16.08.10 09:35 Сейчас в теме
(29) мне важна скорость работы и максимальное удобство, тем более, что 1cpp и 1sqlite используются в других местах кода, зачем лишать себя этого - не ясно.

А так, можно и вообще всё без ВК сделать, только оно надо ?
35. GenTay 19.08.10 09:47 Сейчас в теме
Скачал, поставил +. Внедрил - база стала неустойчивой, подвержена вылетам и медленной.
36. Ёпрст 1041 19.08.10 12:35 Сейчас в теме
(35) ВК каких версий поставил ?

И на счет медленной.. есть сомнения.
У вас терминал, или чисто файловая ?
40. GenTay 20.08.10 13:47 Сейчас в теме
(36) Релиз 7.70.266. Прога основательно доработана. Есть центральная и 2 периферийки. Периферийки на терминалах. Вылеты случались на разных периферийных базах. Причем по времени обновил вечером, утром следующего дня начало вылетать. День непоняток, на сл.день глушу в конфе текст доработки и два дня тьфу-тьфу. В принципе нет и нет, не парюсь по этому поводу.
42. Ёпрст 1041 20.08.10 17:17 Сейчас в теме
(40) заремь 2 процы ОбработкаБлокировкиОбъекта и ПриНачалеБлокировки, проблема осталась ?

попробуй заремить запросSQLLite.ВыполнитьЗапрос("PRAGMA journal_mode=WAL");
если юзвери работают не на 1 сервере терминалов.

(41) у меня так и есть...
37. Ёпрст 1041 19.08.10 12:38 Сейчас в теме
+36 скажем так, терминалка, пользователей от 40 до 70 в одной базе, проблем с падением производительности и нагрузкой на проц не наблюдается.
Ну и вылетов, тем более нет.
38. Ёпрст 1041 19.08.10 12:39 Сейчас в теме
+37 на счет, чисто файловой не скажу, не тестил под нагрузкой, ибо таких баз не имею.
39. JohnyDeath 298 19.08.10 21:33 Сейчас в теме
Да и для "чисто файловой" (вне терминала) базы директива sqlite
PRAGMA journal_mode=WAL

бесполезна
41. orefkov 2062 20.08.10 14:26 Сейчас в теме
+(39)
Я бы даже добавил, что
запросSQLLite.ВыполнитьЗапрос("PRAGMA journal_mode=WAL");

можно делать ТОЛЬКО если все юзеры этой базы сидят в ней на одном терминальном сервере. Если хотя бы один заходит в базу с другого компа - чревато неизвестным поведением, и лучше этого не делать.
43. Ёпрст 1041 20.08.10 17:19 Сейчас в теме
+42 .. По-поводу частых блокировок Sqllite базы во время записи, их и не так много за целый день.
Смотрел за 2 дня, тупо выкинув цикл с попыткой в ЖР.. При 50 пользователях, таких записей было ~15 за два дня.
Так что.. загон в цикл с попыткой оправдан.

44. Борода 21.10.10 16:48 Сейчас в теме
ОбработкаБлокировкиОбъекта не цепляет константы хотя ПриНачалеБлокировкиОбъекта отрабатывает. Это нормально ?
45. Ёпрст 1041 21.10.10 16:57 Сейчас в теме
(44) нормально, я не ставил целью обработку констант, если нужно - дописать недолго.
46. Борода 21.10.10 17:04 Сейчас в теме
плюс однозначный.
модифицировал малость:
Если МонопольныйРежим()=1 Тогда
запросSQLLite.ВыполнитьЗапрос("delete from БазаБлокировок");
Иначе
запросSQLLite.ВыполнитьЗапрос("delete from БазаБлокировок Where Пользователь = '"+Пользователь.Наименование+"'");
КонецЕсли;

(45) в чем нормальность, просветите.
48. Ёпрст 1041 21.10.10 17:16 Сейчас в теме
(46) я бы не удалял сведения о пользователе - лишнее это.
Там всегда при начале блокировки - INSERT or REPLACE - всегда эта запись "перезапишется", если была.

47. Ёпрст 1041 21.10.10 17:13 Сейчас в теме
"Нормальность"
в том, что лень было константы анализировать еще :)

49. Борода 21.10.10 17:17 Сейчас в теме
(47) нет, "ненормальность" в том, что при попытке вторым юзером зайти в константу процедура ОбработкаБлокировкиОбъекта не отрабатывает вообще и 1С сразу выдаёт ошибку.
Может это только у меня так ?
50. Ёпрст 1041 21.10.10 17:37 Сейчас в теме
(49)Я не помню уже, ловит или нет, надо у АЛьФа спросить.
51. Ёпрст 1041 21.10.10 17:43 Сейчас в теме
+50, для красоты, можно еще так сделать:

//Сообщить("" + Объект + " открыт пользователем " + ИмяВредителя,"!");
ДопТекст ="" + Объект + " открыт пользователем " + ИмяВредителя;
52. Борода 21.10.10 18:04 Сейчас в теме
(51) Это я уже сделал. Таки супер! :D
53. dranzerf 04.03.11 19:35 Сейчас в теме
Вещь классная, тока, у меня почему-то наоборот не получается. Когда один пользователь заходит в справочник к примеру, то у другого выдает сообщение, а если этот другой откроет элемент справочника, а первый зайдет в него, то пишет только "объект открыт пользователем", а имя пользователя не пишет.
В чем причина и как ликвидировать?
54. Ёпрст 1041 09.03.11 13:43 Сейчас в теме
(53) Кто куда и откуда ?
Нипонятна..
55. dranzerf 10.03.11 07:12 Сейчас в теме
Тут оказывается дело только в одном пользователе. Система блокировки не хочет определять его,тока не понятно почему. А с остальными все впорядке.
56. Ёпрст 1041 10.03.11 09:19 Сейчас в теме
(55) как "определяешь" пользователя ?
Через ИмяПользователя() или через глПользователь ?
58. dranzerf 10.03.11 20:02 Сейчас в теме
(56) глПользователь.
(57) Мы работаем через терминал, база на серваке, т.ч. да.
59. Ёпрст 1041 11.03.11 08:57 Сейчас в теме
(58) И ? наименование есть у него ?
Мот он без рабочего каталога входит, как "не авторизован" ?
Тогда и не пишется ему ничего..
57. Ёпрст 1041 10.03.11 13:10 Сейчас в теме
+56 да еще, у этого пользователя, ВК загружены ?
60. Ёпрст 1041 11.03.11 08:58 Сейчас в теме
+59 у этого пользователя открой табло и напиши глПользователь.Наименование, что возвращает ?
61. dranzerf 11.03.11 18:49 Сейчас в теме
Пишет - Ошибка в вырожении.
63. Ёпрст 1041 14.03.11 09:15 Сейчас в теме
(61) ну вот и ответ.
(62) проще пользователю создать нормальный рабочий каталог и проверить его наименование/код в справочнике Пользователи.
62. dranzerf 11.03.11 18:50 Сейчас в теме
Может стоит использовать ИмяПользователя а не глПользователь?
64. dranzerf 14.03.11 19:43 Сейчас в теме
Да нет. Все нормально. Просто тот, кто изначально заводил пользователей, не прописал им полное наименование. Т.ч. все работает, но все равно спасибо.
65. dranzerf 16.03.11 19:48 Сейчас в теме
Не. Все равно проблемы. Что-то со строкой: ИДОбъекта = глМД.ЗначениеВДлиннуюСтрокуБД(Объект);
Вопрос такой - есть ли ограничения по версиям dll и конфигурации?
66. Ёпрст 1041 17.03.11 08:15 Сейчас в теме
(65) есть.
1cpp желательно иметь 3-ей версии
67. vitapi 21.04.11 17:17 Сейчас в теме
А почему это решение не подходит для 1С SQL? Мне для SQL надо...
68. Ёпрст 1041 21.04.11 18:10 Сейчас в теме
(67) потому, что на 1sqlite написано, а так, в SQL сделать намного проще - создал табличку для хранения заблокированных объектов в самом скуле + всё тоже самое + синтаксис запроса подправить.
69. vitapi 21.04.11 18:15 Сейчас в теме
(68) То есть, как я понимаю, это вопрос целесообразности? Я было подумал, что это несовместимо с SQL.
70. Ёпрст 1041 21.04.11 18:41 Сейчас в теме
(69) для скуля это просто можно сделать разными способами, (на софтпоинте есть одно из решений, например)
а вот для дбф никто не удосужился, вот я и выложил.

А так, для скуля всё сделать по-аналогии, только заместо базы в sqlite использовать свою табличку в скуле.
проверяешь есть ли она, если нет , то create table и всё собственно, так же в ПриНачалеБлокировки пишешь в неё того кто заблокировал, потом так же обрабатываешь блокировку.
Короче, тот же код, только синтаксис запроса чуть другой.
71. Ёпрст 1041 22.04.11 15:57 Сейчас в теме
+70 добавил для скуля.. пробуйте.
72. Sergafan10 25.04.11 11:49 Сейчас в теме
На скуле не показывает пользователя, но мне кажется это у тех, у кого права в системе "овощные" или же библиотека не зарегана. Заходил под админом на двух разных тачках - всё путем.
73. Ёпрст 1041 25.04.11 11:54 Сейчас в теме
(72) Это, использовал ПолноеИмяПользователя() или глПользователь.Наименование ?
74. Ёпрст 1041 25.04.11 11:56 Сейчас в теме
+(73) ну и 1cpp и formex желательно грузить в ПриНачалеРаботыСистемы ( и регистрить их спецом не надо, они уже сто лет в обед в этом не нуждаются)
ЗЫ: ставмит только последних версий желательно 3 и выше для 1cpp и ..101 и выше для формекса.
Sergafan10; +1 Ответить
75. Sergafan10 25.04.11 12:38 Сейчас в теме
Судя по всему ПолноеИмяПользователя(), т.к. у того, кем блокировал, как раз его и не было(причём только у одного). ;)))
Рад, что регать не надо, у меня версии свежие, а то я уж способы регания библиотек в домене наскоблил)))
Спасибо!!! Плюсанул.
76. sCHTASS 49 25.04.11 14:04 Сейчас в теме
Могет кому будет полезно и мое творение http://infostart.ru/public/19782/.
Отличие от этой разбработки:
1) использует 2 компоненты: 1с++ и formex
2) работает _ТОЛЬКО_ на sql-базах
3) чтобы все заработало, нужно прописать в глобальнике только одну строку.
4) в любой момент можно отключить/включить приблудку.
77. Ёпрст 1041 25.04.11 17:44 Сейчас в теме
(76) публикация не активна, а так, моя поделка использует 2 ВК для скуля и 3 для ДБФ, хотя можно и 1-ой обойтись - формексом, но не удобно.
78. sCHTASS 49 25.04.11 21:20 Сейчас в теме
(77) Странно. Когда-то была активной...
79. Ёпрст 1041 26.04.11 09:42 Сейчас в теме
(78) посмотрел, всё тоже самое, отличие - все действия в доп глобальнике, минус - не проверяется, был ли он(доп глобальник) уже загружен ранее.

:)

Методе то сто лет в обед
80. Ёпрст 1041 26.04.11 09:45 Сейчас в теме
81. natalika1601 145 17.05.11 11:19 Сейчас в теме
После подключения данной обработки при закрытии базы стала выскакивать ошибка отложенной записи Windows. И база стала тормозить. Что с этим делать? База dbf.
82. Ёпрст 1041 17.05.11 15:08 Сейчас в теме
(81)
база по сети ?
в терминале ?
ВК каких версий поставили ?
83. cabat 19.05.11 13:28 Сейчас в теме
Использую данную схему некоторое время (база DBF, база блокировок в SQLite-файле), все гуд.
Но тут наткнулся на такой момент - при массовой обработке объектов получаем большой поток блокировок объектов
и соответствующее кол-во запросов вставок в базу блокировок.
И что то как то подтормаживает все это некисло..
Пока обошел так - добавил методы начала и фиксации транзакции при записи в SQLite, перед массированной обработкой объектов начинаю транзакцию, после фиксирую..
Ускорение на порядок, но как то некузяво это..
Может какое более красивое решение есть?
84. Ёпрст 1041 19.05.11 18:42 Сейчас в теме
(83) база в терминале или по сети ?
У меня, даже при массовых операций тормозов не замечено.
85. Ёпрст 1041 19.05.11 18:42 Сейчас в теме
база в терминале, правда.
86. cabat 20.05.11 09:16 Сейчас в теме
боевая база в терминале, для разработки локальная - результат одинаковый
по профайлеру получается, что 80% времени выполнения массовой обработки объектов занимает запись в таблицу заблокированных объектов..
если обернуть процедуру в транзакцию SQLite, то время выполнения сокращается на порядок..
88. Ёпрст 1041 20.05.11 14:30 Сейчас в теме
(86) странно, у меня в худшем случае, если кто-то ужо пишет туда.. но по логам в ЖР, когда цикла с попыткой выполнения запроса не было, таких случаев в день при 70 юзверей, не так и много..
А с попыткой в цикле и так влёт влетает.
1sqlite какой версии хоть ?
Покажи, как свою транзакцию ставишь.
87. cabat 20.05.11 10:32 Сейчас в теме
попробовал на всякий случай сначала один раз подготовить запрос, а потом вызывать с параметрами - результат тот же..
причем ведь файлик базы SQLite весит то всего 10-20Кб, а скорость вставки записей очень низкая получается..
наверное я просто не умею ее готовить :(
89. cabat 20.05.11 14:54 Сейчас в теме
1sqlite версия: 1.0.2.3

транзакция ставится выполнением запроса "BEGIN TRANSACTION", фиксируется "COMMIT TRANSACTION"
в остальном код по работе с таблицей блокировок почти один в один взят из твоего примера..
только у меня используется класс-обертка над объектом 1sqlite для выполнения запросов
90. Ёпрст 1041 20.05.11 16:30 Сейчас в теме
(89) странно..
Ладно, попобую поиграться на досуге..
Ты кстати, отключение журналирования делал ?
91. cabat 20.05.11 17:05 Сейчас в теме
(90) а то..
даже спецом добавил в класс метод, который возвращает текущий режим - думал, может не срабатывает..
пробовал даже режим MEMORY ставить..
может конечно, имеет смысл с Сашей Орефковым посоветоваться, может я что то не так делаю при работе с 1sqlite..
92. kozorez 7 06.05.12 12:26 Сейчас в теме
Хорошее решение проблемы.
Но, думаю, еще имеет смысл устранять не следствие, а причину. Т.е. запретить пользователю открывать объекты БД в режиме редактирования по двойному щелчку в списках, журналах. Т.е. открывать в режиме просмотра объекта. И случайных проблем с "задним числом" будет меньше... Ведь чаще всего пользователи хотят только посмотреть объект БД, а не изменить его одновременно. Первичный документ, чаще всего, существует в одном экземпляре, на одном рабочем месте... Или не так? ;-)

тоже считаю что очень правильное решение, плюс настроенные права пользователей, не открывать что не нужно или не редактировать.
93. Rockman 17.05.12 12:42 Сейчас в теме
95. phstranger 06.06.12 14:04 Сейчас в теме
97. qwe_QWE 06.07.12 14:03 Сейчас в теме
Не могу понять - Процедура ОбработкаБлокировкиОбъекта() вызывается уже из объекта конфигурации?
99. Ёпрст 1041 13.07.12 12:07 Сейчас в теме
(97) ?
что значит "из объекта" ?
98. aimerlive 13.07.12 11:52 Сейчас в теме
Интересная идея спасибо!
100. Ёпрст 1041 13.07.12 12:07 Сейчас в теме
это всего лишь предопределенная проца глобальника из формекс
101. Dolly_EV 267 01.11.12 07:14 Сейчас в теме
Прикрутил... при групповом проведении на писание в SQLite тратится 1% времени. А как бы сделать так, что при групповых операциях в таблички не писалось?. Т.е. как узнать в ПриНачалеБлокировкиОбъекта(), что это групповой проведение?
102. andrewks 1286 01.11.12 07:34 Сейчас в теме
(101) Dolly_EV, если я правильно помню подноготную 7.7, то можно в модуле проведения дока в разделе осн. программы установить переменную ЭтоГрупПров=0, а в самой процедуре проведения в самом конец ЭтоГрупПров=1.

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

только проверьте сначала эту фишку
Оставьте свое сообщение

См. также

Очень долго запускается 1С предприятие 7.7 (конфигуратор, монитор, отладчик) Промо

Администрирование данных 1С v7.7 1cv7.md Бесплатно (free)

Если у Вас всегда очень долго открывается 1С, заставка висит в течение нескольких минут, зависает при старте предприятия 7.7 и конфигуратор, и монитор, и отладчик, скорее всего, дело в файле 1cv7evt.txt, файл 1cv7evt.txt в подкаталоге Syslog в каталоге базы находится по адресу \\ИмяСервера\ИмяКаталогаБаз\ИмяБазы\SYSLOG\1cv7evt.txt, вернее в размере этого файла. Проблема проявляется в том, что во время запуска 1С предприятия 7.7 и конфигуратора, и монитора, и отладчика заставка висит несколько минут. Отключите пользователей, перенесите файл 1cv7evt.txt в другую папку, и 1С 7.7 будет стартовать очень быстро.

09.09.2014    35317    ksnik    14    

Сбой, отказ 1C:Предприятия 7.7, код исключения e06d7363. APPCRASH 1cv7s.exe

Администрирование СУБД Журнал регистрации v7.7 1cv7.md Бесплатно (free)

Прекращена работа программы "1CV7 starter program". Никто не может зайти в 1C 7.7. Апкреш. Что делать? Проверьте, возможно журнал регистрации информационной базы 1С: Предприятия 7.7 поврежден.

17.08.2020    466    ksnik    3    

Анализ 1С: Предприятие 7.7 с помощью ELK стека

Журнал регистрации Администрирование данных 1С v7.7 1cv7.md Бесплатно (free)

Рассмотрим систему на базе Elasticsearch, Logstash и Kibana (ELK Stack) для анализа логов 1С Предприятие 7.7 с целью визуализации и анализа событий 1С.

22.01.2019    8322    phsin    20    

Библиотека печати на PDF принтер Bullzip для 1С 7.7

Администрирование данных 1С v7.7 Бесплатно (free)

В данной статье приведено несколько методов, которые позволят подключить PDF принтер Bullzip к своему проекту на платформе 1С Предприятие 7.7. Используя PDF принтер, вы сможете сохранять ваши табличные документы в формате PDF. Вы программно можете задавать имя PDF файла и его расположение на диске.

11.12.2018    6970    infosoft-v    9    

Скрипт удобного восстановления базы MSSQL при дифференциальном резервировании Промо

Архивирование (backup) v7.7 v8 1cv8.cf 1cv7.md Россия Бесплатно (free)

Если у Вас база на MSSQL и Вы пользуетесь разностными бекапами, то, скорее всего, столкнулись с тем, что поднять базу/копию базы из имеющихся резервных файлов не столь удобно, как того хотелось бы. В этой статье приведен скрипт по теме.

20.01.2011    30409    Ivon    12    

Решение проблемы с открытием периода ТиС

Тестирование и исправление v77::ОУ 1С7:ТиС Россия УУ Бесплатно (free)

Способ решения проблемы с открытием периода в конфигурации "Торговля и склад" версии 7.7 (вызванной регистром "Книга продаж")

05.06.2016    16541    zemskov    15    

Логирование в 1С

Администрирование данных 1С v7.7 v8 Бесплатно (free)

Часто бывает необходимо отслеживать состояние часто повторяющихся регламентных заданий. Например, синхронизация данных с IP-телефонией, которая может производиться каждую минуту, синхронизация с сайтами, синхронизация данных с различными системами. Использовать для этих целей логирование 1С чрезвычайно неэффективно и не удобно. В таких случаях удобно использовать подход, применяемый в Unix-системах: писать логи в обычные текстовые файлы, а потом делать их обработку через эффективно работающие Unix-команды: grep, tail, cat, less и т.п.

18.05.2016    22718    rudjuk    20    

Установка OpenConf для 1С v 7.7 под Windows 10

Администрирование данных 1С openconf Бесплатно (free)

Хотелось бы поделиться тем, как я пытался установить OpenConf для 1С 7.7 на windows 10. Статья не претендует на пулитцеровскую премию. Вдруг кому-то пригодится.

14.04.2016    18301    kouki_189    7    

Хитрость, чтобы после установки обновления 77, 1с сама не добавляла лишние ссылки в "список баз" окна запуска Промо

Администрирование данных 1С v7.7 1cv7.md Россия Бесплатно (free)

Тем кому часто приходится распаковывать обновления 77 может пригодиться Хитрость, чтобы после установки обновления 77, 1с сама не добавляла лишние ссылки в "список баз" окна запуска.

18.09.2011    15652    dnikolaev    51    

Еще раз, по-новому: производительность 1С: 7.7/1С: 8 + SQL

Производительность и оптимизация (HighLoad) Администрирование данных 1С v7.7 v8 1cv8.cf 1cv7.md Бесплатно (free)

Еще один подход к увеличению производительности 1C+SQL = использование RAM-дисков

16.02.2015    35556    kos    35    

SQL-доступ к журналу регистрации 1С:Предприятие 7.7

Журнал регистрации v7.7 1cv7.md Бесплатно (free)

Все, кто работают с 7.7, знают, что журнал регистрации тормозит нещадно, в связи с чем пользы от него очень мало, и её ещё меньше, когда размер журнала превышает хотя бы 50 мегабайт. На Инфостарте, по- моему, даже есть средства для просмотра журнала, может, даже они эффективны, но моей мечтой всегда был sql-доступ к этому журналу, т.к. это просто, наглядно, удобно и, что самое важное, - очень быстро. Кому интересно - добро пожаловать.

11.12.2014    14761    VladC#    8    

Символьные ссылки - Быстрый и удобный способ обновления регламентированной отчетности для программы 1с Бухгалтерия 7.7 Промо

Администрирование данных 1С v77::БУ 1cv7.md Россия Бесплатно (free)

Символьные ссылки - Быстрый и удобный способ обновления регламентированной отчетности для программы 1с Бухгалтерия 7.7 Данный способ обновления подходит тем, у кого есть несколько бухгалтерских баз с одинаковой системой налогообложения.

23.03.2012    17657    Bambor    21    

Простой переход от базы в формате SQL 2008R2 в формат SQL 2000 для 1с77

Администрирование данных 1С v7.7 1cv7.md Бесплатно (free)

Для тех, кого это касается :) Шпаргалка для чайников по переходу, который не очевиден. Бывает перескочили - базы подключили, поработали - не понравилось, а переподключить базы обратно не получится. Вот как это делается и какие есть подводные камни.

21.08.2014    11817    proskurin    4    

Ошибка при запуске журнала регистрации 1с 7.7

Журнал регистрации v7.7 Бесплатно (free)

При запуске программы выходило сообщение «Ошибка при запуске журнала регистрации». Дело было не в бабине..

04.10.2013    29747    Alexion    2    

Быстрый поиск в справочниках по наименованию, с использованием svcsvc.dll

Поиск данных Универсальные обработки Работа с интерфейсом v7.7 1cv7.md Бесплатно (free)

По аналогии с http://infostart.ru/public/14286/, недавно узнал что в svcsvc.dll несколько обновился функционал, в частности был добавлен метод AddString(). В прилагаемом коде показан запрос, реализованный методами ВК 1SQlite, т.е. только для DBF. Это только пример. Т.е. если например у справочника отсутствует поле "Наименование", то скорее всего будет ошибка. Тем не менее критика приветствуется))) Необходимые ВК: 1SQlite, FORMEX, svcsvc.dll (отсюда: http://www.1cpp.ru/forum/YaBB.pl?num=1373266553). p.s. Спасибо огромное уважаемому ADirks за все эти прекрасные плюшки, и помощь в их освоении)))

12.07.2013    143010    unichkin    10    

Технология обновления нетиповых конфигураций 1С:Предприятия 7.7 Промо

Практика программирования Администрирование данных 1С v7.7 1cv7.md Россия Бесплатно (free)

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

12.12.2008    62766    alexk-is    25    

Исправление ошибок DBCC CHECKDB (1С, SQL) вручную

Тестирование и исправление v7.7 1cv7.md Бесплатно (free)

Если Вы наблюдаете сообщение "could not continue scan with nolock" и подобные ему - значит эта статья для Вас. В статье рассказывается, как поправить ошибки выданные DBCC CHECKDB вручную.

01.07.2013    81895    Вадимко    3    

Копия напечатанного документа или как спрятать документ.

Журнал регистрации Практика программирования v7.7 Бесплатно (free)

Возникла необходимость, чтобы при печати определённого документа (даже потом не сохранённого), создавалась его копия, т.е. запись всех напечатанных документов. (В результате чего возникла такая потребность, полагаюсь на вашу фантазию). В итоге получилось два варианта решения, остановился на втором.

11.04.2013    15602    Dima_    8    

"Динамическое обновление" в 1С Предприятие 7.7

Распределенная БД (УРИБ, УРБД) Администрирование данных 1С v7.7 1cv7.md Бесплатно (free)

Всем известен механизм динамического обновления в 1С Предприятие 8.х. Однако есть недокументированная возможность сделать тоже самое (естественно с некоторыми особенностями) в 1С Предприятие 7.7

10.04.2013    15140    dime2    16    

Восстановление БД 1с 7.7 после шифрования вирусом файлом

Тестирование и исправление v7.7 1cv7.md Бесплатно (free)

После расшифровки антивирусом базы - у всех файлов отсутствует 20% начала файла. Способ восстановить данные с минимальными потерями

19.11.2012    19021    msvsoft    9    

Пакетный режим работы конфигуратора 1C 7.7

Администрирование данных 1С v7.7 1cv7.md Россия Бесплатно (free)

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

26.09.2012    23669    taril    8    

Немного шаманский запуск 16-битного установщика обновлений конфигурации 1с 7.7 под OS Windows 8

Администрирование данных 1С v7.7 1cv7.md Бесплатно (free)

Как запустить установку конфигурации или обновление конфигурации 1с 7.7 под OS Windows 8.

18.09.2012    50484    Vladimir87    32    

Автоматическое регулярное разворачивание оперативных бэкапов (совсем просто) в MS SQL 2008

Архивирование (backup) v7.7 v8 1cv8.cf 1cv7.md Россия Бесплатно (free)

В работе регулярно возникает необходимость протестировать поведение программы на копии рабочей базы с актуальными данными

10.08.2012    18408    sergiobargio1    6    

Обновление базы 1с 7.7. с помощью движка 1с 8.х

Практика программирования Администрирование данных 1С v7.7 1cv7.md Россия Бесплатно (free)

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

28.04.2012    18624    Valerich    31    

Запуск внешней обработки по расписанию v7.7

Практика программирования Администрирование данных 1С v7.7 1cv7.md Россия Бесплатно (free)

Неоднократно возникали задачи организовать, например ежедневную выгрузку и отправку отчетов по эл.почте, и вот…

20.03.2012    44088    Yury1001    17    

Автоматическое обновление отчетов/обработок

Администрирование данных 1С v7.7 1cv7.md Россия Бесплатно (free)

Что ни говорите товарищи, но лень - двигатель прогресса.

17.01.2012    13432    ShEvOvIcH    8    

Борьба за обороты.

Администрирование данных 1С v77::БУ 1С7:Бух Россия Бесплатно (free)

Бухгалтерия 7.7, после системного сбоя отчет «Оборотно-сальдовая ведомость» начал выдавать двойные обороты.

11.12.2011    10832    Dmitri_1C    7    

Нарушена структура индексов таблицы CJ447

Тестирование и исправление v77::Расчет 1С7:ЗиК Россия Бесплатно (free)

При попытке войти в базу 1С:Зарплата и Кадры 7.7 стала возникать ошибка: "Нарушена структура индексов таблицы CJ447. Для восстановления запустите программу в монопольном режиме!". Каким образом удалось устранить эту ошибку - далее.

15.11.2011    16671    Nicholas    11    

Как обновлять не типовую конфигурацию 7.7

Администрирование данных 1С v7.7 1cv7.md Россия Бесплатно (free)

Меня часто спрашивают о том, как можно обновить не типовую конфигурацию, в которую внесены какие-либо изменения. Наконец, нашел немного свободного времени и решил написать про это небольшую статью. Далее, все что из этого всего вышло.

28.10.2011    30128    Nicholas    36    

Запуск конфигурации без регистрации в списке ИБ

Стартеры 1С v77::ОУ v77::БУ 1cv7.md Россия Бесплатно (free)

запускаем конфигурацию платформы 1С.7.7 через bat-ник... не требуется регистрировать ИБ в списке запуска и после корректного выхода - реестр остаётся пустым.. ;-)

01.05.2011    15416    alleh    45    

Печать на сетевом принтере без диалога печати

Администрирование данных 1С v7.7 1cv7.md Россия Бесплатно (free)

Надо к имени принтера добавить в конце слэш

15.04.2011    11275    adamx    9    

К вопросу о правильной установке 1С7.7 на Windows-7

Администрирование данных 1С v77::ОУ v77::БУ v77::Расчет 1cv7.md Россия Бесплатно (free)

В этой мини заметке рассказывается о "правильной" установке 1С7.7 на Windows-7

16.02.2011    47212    RealEscander    27    

Динамическое обновление для 7.7SQL (если не менялась структура данных) (без ТурбоМД и прочего)

Администрирование данных 1С v7.7 openconf 1cv7.md Россия Бесплатно (free)

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

20.01.2011    8403    1yh1    38    

Простейший способ очистить базу данных от мусора и исправить ошибки

Тестирование и исправление Чистка базы openconf v77::ОУ v77::БУ v77::Расчет 1cv7.md Бесплатно (free)

Столкнулся с ситуацией: все проводки (бухгалтерия) удвоены! во всех отчётах, при этом проводки по документам верны. КРАЙ! заготовок на такой случай нет... Скопировал на флешку, а потом сделал вот такие шаманские действия:

15.12.2010    16137    vladimir_makarov    40    

Ошибка "CodeBase Error #: -310" в DBFной версии 1С:Предприятие 7.7

Администрирование данных 1С v7.7 1cv7.md Россия Бесплатно (free)

Ошибка возникает при непосредственном удалении записи (в терминах 1С) в таблице с количеством записей более 16777215 штук.

03.11.2010    59408    hogik    64    

Конвертация данных 2 - Отмена проведения документов в 7.7 при повторной загрузке

1С7.7<->1C7.7 Обработка документов v7.7 1cv7.md КД Бесплатно (free)

При повторной загрузке данных в 1С бывает необходимо отменить проведение у существующих документов.

21.10.2010    18806    nicxxx    7    

Проверка активности работы

Журнал регистрации openconf v77::ОУ v77::БУ v77::Расчет 1cv7.md Россия Бесплатно (free)

Проверка последнего действия пользователя в журнале регистрации.

19.10.2010    13502    zsrg    15    

Логирование изменений средствами MS SQL

Администрирование данных 1С v77::ОУ v77::БУ v77::Расчет 1cv7.md Бесплатно (free)

В данной статье описывается вариант минимальной реализации, а конкретнее только “отлавливание” самого факта изменения реквизитов справочников и шапок документов. Спросите зачем?

03.10.2010    18358    CheBurator    6    

Восстановление потерянных реквизитов документов v 7.7

Администрирование данных 1С Поиск данных Тестирование и исправление v7.7 1cv7.md Россия Бесплатно (free)

В ранее записанных и проведённых документах пропали неторые реквизиты. В результате в отчётах полный бардак. Как я решил эту проблему.

13.09.2010    12162    vladimir_makarov    8