7.7 Нужна помошь

Тема в разделе "Типовые решения "1С:Предприятие 7.7"", создана пользователем qweasd, 29 авг 2011.

  1. TopicStarter Overlay
    qweasd
    Offline

    qweasd

    Регистрация:
    8 мар 2010
    Сообщения:
    20
    Симпатии:
    0
    Баллы:
    1
    подскажите пожал , создаем документ инвентаризация (по рознице), далее необхадимо создать отчет ККМ, но он не создается выводит ошибку Если запрос.выполнить(текстзапроса)=1 тогда...
    подскажите в чемпроблема? раньше все работало,спасибо


    конфиг комплекс 7.7
  2. Dmitriy_76
    Offline

    Dmitriy_76 Опытный в 1С Команда форума

    Регистрация:
    26 мар 2011
    Сообщения:
    2.175
    Симпатии:
    13
    Баллы:
    29
    покажи весь код процедуры... что выше твоей строчки где ошибка
  3. TopicStarter Overlay
    qweasd
    Offline

    qweasd

    Регистрация:
    8 мар 2010
    Сообщения:
    20
    Симпатии:
    0
    Баллы:
    1
    Код:
    //******************************************************************************
    // ЗаполнитьПоИнвентаризации(ОписаниеОш)
    //
    // Параметры: 
    //  ОписаниеОш	- строка, описание ошибки
    //
    // Возвращаемое значение:
    //  1 - функция отработала успешно, 0 - возникла ошибка
    //
    // Описание:
    //  Заполняет документ на основании документа Инвентаризация по рознице
    //
    Функция ЗаполнитьПоИнвентаризации(ОписаниеОш)
    Если ДокОснование.ВидОперации <> Перечисление.ВидыИнвентаризаций.ПоРознице Тогда
    ОписаниеОш	= "Выбранная инвентаризация не является инвентаризацией по рознице!";
    Рез			= 0;
    Иначе
    Валюта 		= ДокОснование.Валюта;
    Курс 		= ДокОснование.Курс;
    
    ТаблицаДокумента = СоздатьОбъект("ТаблицаЗначений");
    ДокОснование.ВыгрузитьТабличнуюЧасть(ТаблицаДокумента);     
    
    СписокНоменклатуры = СоздатьОбъект("СписокЗначений");
    ТаблицаДокумента.Выгрузить(СписокНоменклатуры,,, "Номенклатура");
    
    // Надо определить нет ли ТМЦ уже списанных по данной инвентаризации
    Запрос = СоздатьОбъект("Запрос");    
    ДатаНач = ДокОснование.ДатаДок;
    ТекстЗапроса = "
    |Период с ДатаНач По ДатаДок;
    |Док         = Регистр.ОстаткиТМЦ.ТекущийДокумент;    
    |Номенклатура= Регистр.ОстаткиТМЦ.Номенклатура;
    |Цена		 = Регистр.ОстаткиТМЦ.ЦенаПрод;
    |Основание   = Регистр.ОстаткиТМЦ.ТекущийДокумент.ОтчетККМ.ДокОснование,
    |			   Регистр.ОстаткиТМЦ.ТекущийДокумент.РеализацияРозница.ДокОснование,
    |			   Регистр.ОстаткиТМЦ.ТекущийДокумент.СписаниеТМЦ.ДокОснование;
    |Остаток     = Регистр.ОстаткиТМЦ.Количество;
    |Условие (Номенклатура в СписокНоменклатуры);
    |Условие (Основание = ДокОснование);
    |Функция Списано = Расход(Остаток);
    |Группировка Номенклатура;
    |Группировка Цена;";
    
    
    ТЗСписано = СоздатьОбъект("ТаблицаЗначений");
    
    Если Запрос.Выполнить(ТекстЗапроса) = 1 Тогда
    Запрос.Выгрузить(ТЗСписано);
    КонецЕсли;;
    
    этого достаточно или необходим весь код? его там много просто
  4. Vlad
    Offline

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

    Регистрация:
    16 авг 2006
    Сообщения:
    3.517
    Симпатии:
    19
    Баллы:
    29
    1. Пользуемся тэгами.
    2. Полный код не надо, лучше полный текст ошибки.
    3. "Раньше работало" - это когда? До изменения МОЛа?
  5. TopicStarter Overlay
    qweasd
    Offline

    qweasd

    Регистрация:
    8 мар 2010
    Сообщения:
    20
    Симпатии:
    0
    Баллы:
    1
    так полный текст ошибки так и выгдядит - Если Запрос.Выполнить(ТекстЗапроса) = 1 Тогда
    и не хочет создавать ккм , наверно да,я не знаю с чем связана данная ошибка, бухгалтера часто создают эти отчеты ,а сегодня вдруг проблема возникла

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

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    Судя по коду - ошибка в тексте самого запроса. Там должна быть еще строчка с указание где именно
  7. TopicStarter Overlay
    qweasd
    Offline

    qweasd

    Регистрация:
    8 мар 2010
    Сообщения:
    20
    Симпатии:
    0
    Баллы:
    1
    сорри вот полный код ошибки Если запрос.выполнить(текстзапроса)=1 тогда...{Документ.отчетККМ.Форма.Модуль.506}неверный диапазон дат
  8. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    ДатаНач у вас позднее даты документа
  9. TopicStarter Overlay
    qweasd
    Offline

    qweasd

    Регистрация:
    8 мар 2010
    Сообщения:
    20
    Симпатии:
    0
    Баллы:
    1
    и что делать в таком случае?
  10. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    Из кода не видно где вы задаете эту переменную....
    Самое простое перед запросом добавьте:
    Код:
    ДатаНач =?(ДатаНач>ДатаДок,ДатаДок,ДатаНач);
    
    
    
  11. TopicStarter Overlay
    qweasd
    Offline

    qweasd

    Регистрация:
    8 мар 2010
    Сообщения:
    20
    Симпатии:
    0
    Баллы:
    1
    а какже раньше все работало, без внесении изменении в код никак не обойтись?
    и что означает дата начала поясните пожал
  12. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    Читайте внимательнее.
    Из вышеприведенного вами кода не видно где находится ДатаНач. Рискну предположить что это элемент формы.
    Но начальная дата отбора не может быть позднее даты документа! Поэтому и ошибка в запросе
  13. TopicStarter Overlay
    qweasd
    Offline

    qweasd

    Регистрация:
    8 мар 2010
    Сообщения:
    20
    Симпатии:
    0
    Баллы:
    1
    ДатаНач встречается тока 2 раза в коде , вот именно то что я кинула,больше нигде нет

    т.е мне нужно исправить код на этот?
    Код:
    Функция ЗаполнитьПоИнвентаризации(ОписаниеОш)
    Если ДокОснование.ВидОперации <> Перечисление.ВидыИнвентаризаций.ПоРознице Тогда
    ОписаниеОш	= "Выбранная инвентаризация не является инвентаризацией по рознице!";
    Рез			= 0;
    Иначе
    Валюта 		= ДокОснование.Валюта;
    Курс 		= ДокОснование.Курс;
    
    ТаблицаДокумента = СоздатьОбъект("ТаблицаЗначений");
    ДокОснование.ВыгрузитьТабличнуюЧасть(ТаблицаДокумента);     
    
    СписокНоменклатуры = СоздатьОбъект("СписокЗначений");
    ТаблицаДокумента.Выгрузить(СписокНоменклатуры,,, "Номенклатура");
    
    // Надо определить нет ли ТМЦ уже списанных по данной инвентаризации
    
    
    ДатаНач =?(ДатаНач>ДатаДок,ДатаДок,ДатаНач);----------------------------------------здесь?
    
    
    Запрос = СоздатьОбъект("Запрос");    
    ДатаНач = ДокОснование.ДатаДок;
    ТекстЗапроса = "
    |Период с ДатаНач По ДатаДок;
    |Док         = Регистр.ОстаткиТМЦ.ТекущийДокумент;    
    |Номенклатура= Регистр.ОстаткиТМЦ.Номенклатура;
    |Цена		 = Регистр.ОстаткиТМЦ.ЦенаПрод;
    |Основание   = Регистр.ОстаткиТМЦ.ТекущийДокумент.ОтчетККМ.ДокОснование,
    |			   Регистр.ОстаткиТМЦ.ТекущийДокумент.РеализацияРозница.ДокОснование,
    |			   Регистр.ОстаткиТМЦ.ТекущийДокумент.СписаниеТМЦ.ДокОснование;
    |Остаток     = Регистр.ОстаткиТМЦ.Количество;
    |Условие (Номенклатура в СписокНоменклатуры);
    |Условие (Основание = ДокОснование);
    |Функция Списано = Расход(Остаток);
    |Группировка Номенклатура;
    |Группировка Цена;";
    
    
    ТЗСписано = СоздатьОбъект("ТаблицаЗначений");
    
    Если Запрос.Выполнить(ТекстЗапроса) = 1 Тогда
    Запрос.Выгрузить(ТЗСписано);
    КонецЕсли;;
    
    
  14. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    Если в тексте не встречается значит как я и предполагал это реквизит формы!
    [warn="Убедительная просьба"]
    Пользуйтесь тегами - ваш код трудно читать
    [/warn]

    Нужно добавить код из поста 10
  15. TopicStarter Overlay
    qweasd
    Offline

    qweasd

    Регистрация:
    8 мар 2010
    Сообщения:
    20
    Симпатии:
    0
    Баллы:
    1
    Код:
    Функция ЗаполнитьПоИнвентаризации(ОписаниеОш)
    Если ДокОснование.ВидОперации <> Перечисление.ВидыИнвентаризаций.ПоРознице Тогда
    ОписаниеОш	= "Выбранная инвентаризация не является инвентаризацией по рознице!";
    Рез			= 0;
    Иначе
    Валюта 		= ДокОснование.Валюта;
    Курс 		= ДокОснование.Курс;
    
    ТаблицаДокумента = СоздатьОбъект("ТаблицаЗначений");
    ДокОснование.ВыгрузитьТабличнуюЧасть(ТаблицаДокумента);     
    
    СписокНоменклатуры = СоздатьОбъект("СписокЗначений");
    ТаблицаДокумента.Выгрузить(СписокНоменклатуры,,, "Номенклатура");
    
    // Надо определить нет ли ТМЦ уже списанных по данной инвентаризации
    
    
    ДатаНач =?(ДатаНач>ДатаДок,ДатаДок,ДатаНач);----------------------------------------здесь?
    
    
    Запрос = СоздатьОбъект("Запрос");    
    ДатаНач = ДокОснование.ДатаДок;
    ТекстЗапроса = "
    |Период с ДатаНач По ДатаДок;
    |Док         = Регистр.ОстаткиТМЦ.ТекущийДокумент;    
    |Номенклатура= Регистр.ОстаткиТМЦ.Номенклатура;
    |Цена		 = Регистр.ОстаткиТМЦ.ЦенаПрод;
    |Основание   = Регистр.ОстаткиТМЦ.ТекущийДокумент.ОтчетККМ.ДокОснование,
    |			   Регистр.ОстаткиТМЦ.ТекущийДокумент.РеализацияРозница.ДокОснование,
    |			   Регистр.ОстаткиТМЦ.ТекущийДокумент.СписаниеТМЦ.ДокОснование;
    |Остаток     = Регистр.ОстаткиТМЦ.Количество;
    |Условие (Номенклатура в СписокНоменклатуры);
    |Условие (Основание = ДокОснование);
    |Функция Списано = Расход(Остаток);
    |Группировка Номенклатура;
    |Группировка Цена;";
    
    
    ТЗСписано = СоздатьОбъект("ТаблицаЗначений");
    
    Если Запрос.Выполнить(ТекстЗапроса) = 1 Тогда
    Запрос.Выгрузить(ТЗСписано);
    КонецЕсли;;
    


    я вроде пользуюсь тегами
  16. TopicStarter Overlay
    qweasd
    Offline

    qweasd

    Регистрация:
    8 мар 2010
    Сообщения:
    20
    Симпатии:
    0
    Баллы:
    1
    подскажи как понять что дата начала документа позднее даты основания? что есть дата начала и что есть дата основания?
  17. Vlad
    Offline

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

    Регистрация:
    16 авг 2006
    Сообщения:
    3.517
    Симпатии:
    19
    Баллы:
    29
    Вот код из типовой комплексной (у меня, правда, под рукой только 507 релиз, но вроде бы он не менялся.

    Код:
    Функция ЗаполнитьПоИнвентаризации(ОписаниеОш)
    Если ДокОснование.ВидОперации <> Перечисление.ВидыИнвентаризаций.ПоРознице Тогда
    ОписаниеОш	= "Выбранная инвентаризация не является инвентаризацией по рознице!";
    Рез			= 0;
    Иначе
    Валюта 		= ДокОснование.Валюта;
    Курс 		= ДокОснование.Курс;
    Кратность	= ДокОснование.Кратность;
    
    
    ТаблицаДокумента = СоздатьОбъект("ТаблицаЗначений");
    ДокОснование.ВыгрузитьТабличнуюЧасть(ТаблицаДокумента);     
    
    СписокНоменклатуры = СоздатьОбъект("СписокЗначений");
    ТаблицаДокумента.Выгрузить(СписокНоменклатуры,,, "Номенклатура");
    
    // Надо определить нет ли ТМЦ уже списанных по данной инвентаризации
    Запрос = СоздатьОбъект("Запрос");    
    
    ДатаНач = ДокОснование.ДатаДок;                     
    ДатаТА  = ПолучитьДатуТА();
    Если ДатаДок > ДатаТА Тогда
    ДатаКон = ДатаТА;
    Иначе
    ДатаКон = ДатаДок;
    КонецЕсли;   
    
    Если ДатаНач > ДатаКон Тогда
    ДатаНач = ДатаКон;
    КонецЕсли;
    
    ТекстЗапроса = "
    |Период с ДатаНач По ДатаКон;
    |Док         = Регистр.ОстаткиТМЦ.ТекущийДокумент;    
    |Номенклатура= Регистр.ОстаткиТМЦ.Номенклатура;
    |Цена		 = Регистр.ОстаткиТМЦ.ЦенаПрод;
    |Основание   = Регистр.ОстаткиТМЦ.ТекущийДокумент.ОтчетККМ.ДокОснование,
    |			   Регистр.ОстаткиТМЦ.ТекущийДокумент.РеализацияРозница.ДокОснование,
    |			   Регистр.ОстаткиТМЦ.ТекущийДокумент.СписаниеТМЦ.ДокОснование;
    |Остаток     = Регистр.ОстаткиТМЦ.Количество;
    |Условие (Номенклатура в СписокНоменклатуры);
    |Условие (Основание = ДокОснование);
    |Функция Списано = Расход(Остаток);
    |Группировка Номенклатура;
    |Группировка Цена;";
    
    
    ТЗСписано = СоздатьОбъект("ТаблицаЗначений");
    
    Если Запрос.Выполнить(ТекстЗапроса) = 1 Тогда
    Запрос.Выгрузить(ТЗСписано);
    КонецЕсли;;
    
    Сама разницу найдешь? Кто-то, видимио, поковырялся...
  18. TopicStarter Overlay
    qweasd
    Offline

    qweasd

    Регистрация:
    8 мар 2010
    Сообщения:
    20
    Симпатии:
    0
    Баллы:
    1
    спасибо

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