Имя: Пароль:
1C
1C 7.7
v7: Блокировка таблицы SQL
0 totparen
 
18.12.16
10:26
Ребята, помогите с синтаксисом. Нужно заблокировать таблицу _1SDWNLDS до записи в неё данных. Как это делается?

Процедура УвеличитьMessageNo()
        лТекстЗапроса = "SELECT max(DWNLDID) FROM _1SDWNLDS WHERE DIRECT = 'O'";
        лТЗ = лЗапрос.ВыполнитьИнструкцию(лТекстЗапроса); // Здесь нужно установить блокировку таблицы до записи.
        
        Если лТЗ.КоличествоСтрок() = 1 Тогда
            НомерИсходящейКвитанции = лТЗ.ПолучитьЗначение(1,1);
            НомерИсходящейКвитанции = _StrToId(Лев(НомерИсходящейКвитанции,6));
        Иначе
            // На случай если УРБД с нуля.
            НомерИсходящейКвитанции = 0;
        КонецЕсли;
        
        MessageNo = НомерИсходящейКвитанции + 1;

        НомерИсходящейКвитанции = Прав("      " + _IdToStr(MessageNo) + ЦентральнаяИБКод(),9);
        
        лТекстЗапроса = "INSERT INTO _1SDWNLDS VALUES ('" + НомерИсходящейКвитанции + "','" + ПрефиксУзлаEDI + "','O','')";
        
        Если лЗапрос.ВыполнитьИнструкцию(лТекстЗапроса) = 1 Тогда
КонецПроцедуры
1 mehfk
 
18.12.16
10:39
2 totparen
 
18.12.16
10:43
http://www.softpoint.ru/archive/article_prn_id1.php

Эта статья мне больше по нраву, но долго переваривать.
3 totparen
 
18.12.16
10:48
Хотя вроде можно и забить... максимум что произойдёт - процедура рухнет. SQL не даст записать не уникальный номер.