7.7 Дата

Тема в разделе "Отчеты и обработки для "1С:Предприятие 7.7"", создана пользователем Dmitrij, 18 июн 2008.

  1. TopicStarter Overlay
    Dmitrij
    Offline

    Dmitrij Опытный в 1С

    Регистрация:
    6 май 2008
    Сообщения:
    844
    Симпатии:
    1
    Баллы:
    26
    делаю проверку документов которая должна проходить при проведении документа
    меня интересует как можно написать в запросе проверка документов за 3 дня от текущей даты.
    надеюсь понятно написал (текдата-3 дня), т.е. сегодня 18.06.08 мне нужно чтоб проверка началась от 15.06.08
  2. Stado_adama
    Offline

    Stado_adama Модераторы Модератор

    Регистрация:
    27 ноя 2007
    Сообщения:
    1.086
    Симпатии:
    0
    Баллы:
    26
    а в чем трабл-то? ТекущаяДата() - 3 не устраивает?
  3. WaRDeR
    Offline

    WaRDeR Модераторы Команда форума Модератор

    Регистрация:
    23 ноя 2006
    Сообщения:
    3.263
    Симпатии:
    14
    Баллы:
    29
    Дата плюс/минус число в результате дает дату, отстоящую на "число" дней от используемой "даты"
  4. TopicStarter Overlay
    Dmitrij
    Offline

    Dmitrij Опытный в 1С

    Регистрация:
    6 май 2008
    Сообщения:
    844
    Симпатии:
    1
    Баллы:
    26
    Пробовал ставить в запрос:
    Код:
    |Период с ТекущаяДата()-3 по ТекущаяДата()-1;
    
    не работает. Выдается сообщение:
    "{Документ.ПодготовкаЗаявки.Форма.Модуль(379)}: Период с <<?>> ТекущаяДата()-3 по ТекущаяДата()-1;
    Запрос[3] : Ошибка в выражении 'ТекущаяДата'"
  5. Stado_adama
    Offline

    Stado_adama Модераторы Модератор

    Регистрация:
    27 ноя 2007
    Сообщения:
    1.086
    Симпатии:
    0
    Баллы:
    26
    Код:
     
    ДатаНачала = ТекущаяДата()-3;
    ДатаОкончания = ТекущаяДата()-1;
    |Период с ДатаНачала по ДатаОкончания;
    
  6. TopicStarter Overlay
    Dmitrij
    Offline

    Dmitrij Опытный в 1С

    Регистрация:
    6 май 2008
    Сообщения:
    844
    Симпатии:
    1
    Баллы:
    26
    Подскажите начинающему:
    Делаю проверку на излишки, смысл в следующем при нажатии кнопки OK сначала проходит процедура проверки (сейчас ее делаю) после этого если нет совпадений документ проводится.
    Проверка делается из документа ПодготовкаЗаявки конфигурация е-фарма по созданным документам заявки за последнии 3 дня.
    Моя идея в следующем делается запрос который выгружает в ТЗ наименования товаров затем цикл где должно сравниваться наимен из ТЗ с наимен из тек док и потом если есть совпадения вывести табл.
    Вот код:
    Код:
    Процедура Контроль();
    
    Таб=СоздатьОбъект("Таблица");
    Таб.ИсходнаяТаблица("Контроль");
    
    Запрос = СоздатьОбъект("Запрос");
    ДатаНачала = ТекущаяДата()-3;
    ДатаОкончания = ТекущаяДата()-1;
    ТекстЗапроса = 
    "//{{ЗАПРОС(Сформировать)
    |Период с ДатаНачала по ДатаОкончания;
    |Обрабатывать НеПомеченныеНаУдаление;
    |ЗапрТовар = Документ.ПодготовкаЗаявки.Товар;
    |ЗапрДатаДок = Документ.ПодготовкаЗаявки.ДатаДок;
    |ЗапрОтдел = Документ.ПодготовкаЗаявки.Отдел;
    |Группировка ЗапрТовар упорядочить по ЗапрТовар.Наименование; 
    |Условие(ЗапрОтдел = Отдел);";  
    
    ТЗ = СоздатьОбъект("ТаблицаЗначений");
    ТЗ.НоваяКолонка("ЗапрТовар");
    ТЗ.НоваяКолонка("ЗапрДатаДок");
    Если Запрос.Выполнить(ТекстЗапроса)= 0 Тогда
    Возврат;
    КонецЕсли; 
    Запрос.Выгрузить(ТЗ); 
    Пока Запрос.Группировка(1) = 1 Цикл
    
    КонецЦикла; 
    Таб.ВывестиСекцию ("Шапка");
    Тз.ВыбратьСтроки();
    Пока ТЗ.ПолучитьСтроку()=1 Цикл 
    Если ТЗ.ЗапрТовар=Товар Тогда
    Таб.ВывестиСекцию ("Товар"); 
    КонецЕсли;
    КонецЦикла;
    Таб.ТолькоПросмотр(1);
    Таб.Показать("Контроль", "");
    
    КонецПроцедуры;
    
    подскажите что не так делаю
  7. Stado_adama
    Offline

    Stado_adama Модераторы Модератор

    Регистрация:
    27 ноя 2007
    Сообщения:
    1.086
    Симпатии:
    0
    Баллы:
    26
    Код:
    Пока Запрос.Группировка(1) = 1 Цикл
    КонецЦикла; 
    
    это можешь смело выкинуть
    Код:
    Если ТЗ.ЗапрТовар=Товар Тогда
    
    а это вообще бред какой-то! переменная товар это что у тебя?? ей же не присваивается не хрена!
  8. WaRDeR
    Offline

    WaRDeR Модераторы Команда форума Модератор

    Регистрация:
    23 ноя 2006
    Сообщения:
    3.263
    Симпатии:
    14
    Баллы:
    29
    А может "Товар" - это реквизит формы (справочника/документа/т.п.)

    Но тогда лучше вставить условие в запрос.
  9. TopicStarter Overlay
    Dmitrij
    Offline

    Dmitrij Опытный в 1С

    Регистрация:
    6 май 2008
    Сообщения:
    844
    Симпатии:
    1
    Баллы:
    26
    Товар это поле таблицы в документе
  10. Stado_adama
    Offline

    Stado_adama Модераторы Модератор

    Регистрация:
    27 ноя 2007
    Сообщения:
    1.086
    Симпатии:
    0
    Баллы:
    26
    ну тогда открой отладчик, и убедись в том, что на момент этого условия Товар = ""... сделай там ВыбратьСтроки и т.д.... тебе кстати надо найти совпадения номенклатуры в ТЗ со всеми твоими строками?
  11. TopicStarter Overlay
    Dmitrij
    Offline

    Dmitrij Опытный в 1С

    Регистрация:
    6 май 2008
    Сообщения:
    844
    Симпатии:
    1
    Баллы:
    26
    В переменную товар попадают наименование, но почему то не получается сравнить ее с ТЗ
  12. Wronk
    Offline

    Wronk

    Регистрация:
    29 июн 2008
    Сообщения:
    9
    Симпатии:
    0
    Баллы:
    1
    Код:
    ...
    Если Запрос.Выполнить(ТекстЗапроса)= 0 Тогда
    Возврат;
    КонецЕсли;
    
    ТЗ = СоздатьОбъект("ТаблицаЗначений"); 
    Запрос.Выгрузить(ТЗ); 
    
    Таб.ВывестиСекцию ("Шапка");
    ВыбратьСтроки();
    Пока ПолучитьСтроку() = 1 Цикл
    Тз.ВыбратьСтроки();
    Пока ТЗ.ПолучитьСтроку()=1 Цикл 
    Если ТЗ.ЗапрТовар=Товар Тогда
    Таб.ВывестиСекцию ("Товар"); 
    КонецЕсли;
    КонецЦикла;
    КонецЦикла;
    Таб.ТолькоПросмотр(1);
    Таб.Показать("Контроль", "");
    
    КонецПроцедуры;
    
    
    Попробуй так

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