Имя: Пароль:
1C
 
Чистка кеша файловой базы
0 lamme
 
20.02.20
09:52
Коллеги ..
1С8 3 11 2899
конфиг - далион
файловая база
Регламентное задание.
Руками запускаю - формирует одно количество в прайсе
Регл задание запускаю под пользователем , под кем запускалось 5 мин назад руками - формирует другое количество в прайсе
(Регл задание формирует прайс. тестово ставил - формировать 10 позиций)
Выходил - кеш чистил свой - заходил. Та же ситуация ..

Ясно что в кеше дело
Но чей чистить и где ?
(база файловая)
1 vicof
 
20.02.20
09:55
Ну посмотри запросы и т.д. под собой и под пользователем.
2 lamme
 
20.02.20
09:57
один запрос.
одна процедура

рег задание запускает
и я делаю внешней обработкой - которая запускает эту же процедуру , что рег задание

Не в этом дело
3 lamme
 
20.02.20
11:02
никто не ?
4 D_E_S_131
 
20.02.20
11:41
От чьего имени запускается регл задание? От того же пользователя?
5 lamme
 
20.02.20
11:49
да
6 lamme
 
20.02.20
11:50
кеш текущего пользователя - чистил.
не помогло.
7 D_E_S_131
 
20.02.20
11:54
Ну тогда сам код процедуры регл задания давай. А то может у тебя там конструкция препроцессору стоит, завязанная на типе клиента.
8 lamme
 
20.02.20
12:01
процедура выполняется в новом модуле
на модуле стоят галочки
- сервер
- вн соединение
- клиент (обычное)
- вызов сервера

Сама процедура



Функция ПолучитьОстаткиПоСхемеНастроек(схеманастройки, СоСкладами)
    Запрос = новый  Запрос();
    
    Запрос.УстановитьПараметр("СписокСкладов",схеманастройки. Склады.выгрузитьколонку("Склад"));
    Запрос.УстановитьПараметр("СписокНоменклатуры",схеманастройки. Номенклатура.выгрузитьколонку("Номенклатура"));
    

    Запрос.Текст =
     "ВЫБРАТЬ
    
    
     |    ТоварыНаСкладахОстатки.Номенклатура,";
     Если  СоСкладами тогда
        Запрос.Текст =Запрос.Текст+
         "     ТоварыНаСкладахОстатки.Склад,";
     конецесли;

        Запрос.Текст =Запрос.Текст+
        
        "    ТоварыНаСкладахОстатки.КоличествоОстаток КАК Остаток,
        |ИЗ
        |    РегистрНакопления.ОстаткиТоваров.Остатки КАК ТоварыНаСкладахОстатки
        |ГДЕ
        |    ТоварыНаСкладахОстатки.КоличествоОстаток > 0";
    
     Если  схеманастройки.Склады.количество()>0 тогда
         Запрос.Текст =Запрос.Текст+
         " И ТоварыНаСкладахОстатки.Склад в (&СписокСкладов) ";
     конецесли;
    
        
    
     Если  схеманастройки.Номенклатура.количество()>0 тогда
          Запрос.Текст =Запрос.Текст+
         " И ТоварыНаСкладахОстатки.Номенклатура в иерархии (&СписокНоменклатуры) ";
     конецесли;
    
     Возврат Запрос.Выполнить();
    

конецфункции

Ну и потом процедура = которая берет результат запроса и с ним работает - выводит в ексель

препроцессоров - никаких нет
9 FIXXXL
 
20.02.20
12:02
(8) РЛС по Складам?
10 D_E_S_131
 
20.02.20
12:06
(8) так это же не процедура регл задания. Или откуда передаются параметры в эту функцию?
11 lamme
 
20.02.20
12:12
процедура регл задания:

МойМодуль.ЗапуститьФормированиеПрайса()


процедура ЗапуститьФормированиеПрайса() Экспорт

// запрос на определение схемы настройки ..

ОстаткиВыборка = ПолучитьОстаткиПоСхемеНастроек(схеманастройки, истина);

// обработка результата запроса

конецпроцедуры
12 D_E_S_131
 
20.02.20
12:21
(11) "// запрос на определение схемы настройки .." - вот этот кусок тоже нужен.
13 lamme
 
20.02.20
12:28
процедура ЗапуститьФормированиеПрайса() Экспорт




запрос = новый запрос();
Запрос.УстановитьПараметр("ТипВыгрузки",Перечисления.ТипВыгрузки.НашСайт);
Запрос.Текст=
"ВЫБРАТЬ
|    НастройкиАвтоВыгрузкиПрайса.Ссылка
|ИЗ
|    Справочник.НастройкиАвтоВыгрузкиПрайса КАК НастройкиАвтоВыгрузкиПрайса
|ГДЕ
|    НастройкиАвтоВыгрузкиПрайса.ПометкаУдаления = ЛОЖЬ
|    И НастройкиАвтоВыгрузкиПрайса.ТипВыгрузки = &ТипВыгрузки";
всенастройки = запрос.Выполнить().Выгрузить();


для каждого СтрНастройки из всенастройки цикл
   ОстаткиВыборка = ПолучитьОстаткиПоСхемеНастроек(СтрНастройки.ссылка, истина);
  // обработка результата запроса


конеццикла;    








конецпроцедуры



не в коде дело ...
не в коде ...
в кеше..


на этапе тестирования в запросе получения остатков я ставил

Запрос.Текст =
     "ВЫБРАТЬ первые 10



и руками запускаешь это регзадание - все работает корректно
робот - формирует ровно 10 товаров
14 D_E_S_131
 
20.02.20
12:39
(13) Хорошо. Тогда скажи как "чистил кеш"? Удалением базы из списка баз в кластере и списка на клиенте?
15 lopus
 
20.02.20
12:49
(14) Она же файловая
16 D_E_S_131
 
20.02.20
12:52
(15) Тогда достаточно "...и списка на клиенте?".
17 lamme
 
20.02.20
13:37
нет
файлы из папок