7.7 Ошибка в модуле обработки

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 7.7"", создана пользователем Masyuk, 25 авг 2006.

  1. TopicStarter Overlay
    Masyuk
    Offline

    Masyuk Гость Гость

    Проблема вот в чем:

    У меня специализированная конфигурация бух. 479 SQL, Платформа - 7.70.025.

    Вооот... Там есть очень нужная обработка - Загрузка... - Самая нужная и полезная...

    И она выдает ошибку в запросе - "Неизвестный язык С ... "

    Запрос типа такого:
    БЛА БЛА БЛА...
    |С Дата1 ПО Дата2 --- вот на это и ругается, что Неизвестный язык...

    Если заменить на Период С ... ПО... , все работает, но разработчики говорят, что такая конструкция неправильна, вроде как отбирает неправильно... Решения никакого не предложили...

    Почему в описании языка и в хэлпе - указано,
    что параметр Период - необязательный ([Период] С... ПО... ), но в моем случае -
    синтаксическая ошибка в запросе и все тут?
  2. †omynoker
    Offline

    †omynoker

    Регистрация:
    17 авг 2006
    Сообщения:
    41
    Симпатии:
    0
    Баллы:
    1
    Сам не сталкивался, но вот что накопал: конструкция С ... По ... используется для журналов, а у тебя из чего выборка?

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

    Применение конструкции "С ... По ..." приводит к тому, что выборка записей из журнала расчетов проводится по времени действия записей журнала расчетов, определяемых реквизитами журнала расчетов "ДатаНачала" и "ДатаОкончания", а не временем их ввода в журнал.

    Замечание. Работа запроса с журналами расчетов, с использованием конст­рукции "Период С ... По ...", аналогична выборке записей в журна­ле расчетов, организуемой при помощи метода журнала расчетов ВыбратьПериод. С другой стороны, запрос, использующий конструк­цию "С ... По ...", аналогичен выборке, организуемой при помощи метода журнала расчетов ВыбратьЗаписи.

    Код:
    [b]Пример:[/b]
    *
    Процедура РасчЛистки()
    Перем Запрос, Флаг;
    Перем ДатаНач, ДатаКон;
    ЖР = СоздатьОбъект{"ЖурналРасчетов.Зарплата");
    Нач = ЖР.НачалоТекущегоПериода();
    Кон = ЖР.КонецТекущегоПериода();
    //Создание объекта типа Запрос
    Запрос = СоздатьОбъект("Запрос");
    Флаг = Запрос.Выполнить(
    "//{{ЗАПРОС(РасчЛистки)
    |Период С ДатаНач По ДатаКон; // выборка по расчетным периодам!
    |Рез = ЖурналРасчетов.Зарплата.Результат;
    |Расч = ЖурналРасчетов.Зарплата.ВидРасч;
    |Дни = ЖурналРасчетов.Зарплата.Дни;
    |Сотр = ЖурналРасчетов.Зарплата.Объект;
    |Группировка Сотр без групп;
    |Группировка Расч;
    |функция Сум = Сумма(Рез);
    |функция Дней = Сумма(Дни);
    |Условие(Рез о 0);
    |"//}}ЗАПРОС
    );
    // ...
    КонецПроцедуры;
    
    *
    
    //Создание объекта типа Запрос
    Запрос = СоздатьОбъект("Запрос");
    // ниже формируется текст запроса с выборкой по времени
    // действия записей журнала расчетов, а не по расчетным периодам!
    ТекстЗапроса =
    "//{{ЗАПРОС(Сформировать)
    |С ДатаНач По ДатаКон;
    |Рез = ЖурналРасчетов.Зарплата.Результат;
    |Сотр = ЖурналРасчетов.Зарплата.Объект;
    |ПЖ = ЖурналРасчетов.Зарплата.ПериодРегистрации;
    |Группировка Сотр без групп;
    |Группировка ПЖ;
    |Функция Сум = Сумма(Рез);
    "//}}ЗАПРОС;
    Флаг = Запрос.Выполнить(ТекстЗапроса);
    // ...
    
    
    
    "
  3. TopicStarter Overlay
    Гость
    Offline

    Гость Гость Гость

    Выборка у меня из журнала - инструкцию я читала и перечитывала со вниманием, но не совсем поняла - в чем разница... Вернее поняла как-то непраывильно: получается, что если я ввела документ от 31 июля - первого августа - он при запросе Период С 1.06 ПО 31.06 не попадет в выборку?

    В общем - В моей конфигурации запрос С Дата1 По Дата2 - значит должно работать - у самих разработчиков работает!

    Где грабли? Чегой у меня то ли в базе, то ли в платформе, то ли в системе не так...?
    Уж я их и так, и этак - со словами и без слов...
  4. Masyuk
    Offline

    Masyuk

    Регистрация:
    28 авг 2006
    Сообщения:
    2
    Симпатии:
    0
    Баллы:
    1
    Все таки может кто-нибудь объяснит - более популярно, чем в книгах - в чем разница между "ПЕРИОД С... ПО..." и "С... ПО..."

    И почему в моей конфигурации конструкция "С... ПО..." считается синтаксической ошибкой и неизвестным языком...

    Повторю - конф. АСР-ИНТЕГРАТОР. БУХГАЛТЕРИЯ 7.7 (479 рел), платформа SQL 25 релиз

    :D B) :unsure:
  5. Tiger
    Offline

    Tiger Опытный в 1С

    Регистрация:
    12 июл 2006
    Сообщения:
    489
    Симпатии:
    0
    Баллы:
    26
    Выкладывай часть кода вместе с запросом. Может яснее станет. А то догадки одни.
  6. Masyuk
    Offline

    Masyuk

    Регистрация:
    28 авг 2006
    Сообщения:
    2
    Симпатии:
    0
    Баллы:
    1
    //-------------------------------------------------------------------------------------------*
    //Процедура удаления ранее загруженных документов и операций

    Процедура УдалениеДокументов()

    Перем Запрос, ТекстЗапроса;

    Док=СоздатьОбъект("Документ");

    ////Отбираем в заданном интервале документы по значению реквизита Выгружен
    //
    //
    //
    //Док.ВыбратьПоЗначению(Дата1,Дата2,"Выгружен",1);

    //Создание объекта типа Запрос

    ////Отбираем в заданном интервале документы по значению реквизита Выгружен
    //
    //
    //
    //Док.ВыбратьПоЗначению(Дата1,Дата2,"Выгружен",1);

    //Создание объекта типа Запрос 2

    Запрос = СоздатьОбъект("Запрос");
    ТекстЗапроса =
    "//{{ЗАПРОС(Сформировать1)
    |С Дата1 ПО Дата2; //Вот как раз та самая конструкция - ставишь ПЕРИОД - все нормально
    |ОбрабатыватьДокументы Все;
    |ТекДок = Документ.ОказаниеУслуг.ТекущийДокумент, Документ.СчетФактура.ТекущийДокумент;
    |Условие(ТекДок.Выгружен=1);
    |Группировка ТекДок;
    |"//}}ЗАПРОС
    ;
    // Если ошибка в запросе, то выход из процедуры
    Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда
    Возврат;
    КонецЕсли;

    НачатьТранзакцию();
    Пока Запрос.Группировка("ТекДок")=1 Цикл
    Состояние("Удаляется документ "+Запрос.ТекДок);
    //Сообщить("Удаляется документ "+Док);
    Док.НайтиДокумент(Запрос.ТекДок);
    Док.Удалить();
    КонецЦикла;
    ЗафиксироватьТранзакцию();
    КонецПроцедуры //УдалениеДокументов()




    Вот такая процедура, есть еще одна - точно с таким же запросом... - вот они ругаются на неизвестный язык. Они в обработке Загрузка... из файла xls или csv.
    Вроде бы наплевать, оставлю ПЕРИОД, так как тестовая загрузка 30 элементов проходит без ошибок, но мне бы понять, как это отразиться на правильности загрузки документов, у меня их будет 15000 в месяц - вручную проверять - за"@#%сси...
  7. TopicStarter Overlay
    Гость
    Offline

    Гость Гость Гость

    Если в конструкции слово период опущено, то программа считает что запрос идет по журналу расчетов. Следовательно должна быть установлена компонента Расчет. По-моему так...
    А у Вас стоит бухгалтерия... поэтому и ругается. По-моему так...
  8. Tiger
    Offline

    Tiger Опытный в 1С

    Регистрация:
    12 июл 2006
    Сообщения:
    489
    Симпатии:
    0
    Баллы:
    26
    Если в конструкции слово период опущено, то программа считает что запрос идет по журналу расчетов. Следовательно должна быть установлена компонента Расчет. По-моему так...
    А у Вас стоит бухгалтерия... поэтому и ругается. По-моему так...
    --------------------------------------------------------------------------------------
    Так оно и есть. Попробуйте добавить в каталог BIN файл salary.dll Посмотреть вложение 49

    Вложения:

    • Salary.rar
      Размер файла:
      75,3 КБ
      Просмотров:
      286

Поделиться этой страницей