7.7 Странности с функцией ПустоЗначение()

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

  1. TopicStarter Overlay
    Mike
    Offline

    Mike

    Регистрация:
    12 авг 2008
    Сообщения:
    13
    Симпатии:
    0
    Баллы:
    1
    Добрый день.
    Такое вопрос, в ТИС 7.7 (942) при обращении к функции глНомерНаПечать (для получения номера документа, для печати, она убирает префиксы и нули) непонятная ситуация, документ передается как параметр , и в начале функции это параметр проверяется на пустоту, но не проходит проверку.
    Пробовал через НайтиДокумент(), документ находится , но проверку все равно не проходит.

    смотри рисунок --->>> http://xmages.net/show.php/486297_.JPG.html

    Подскажите , может кто знает, как такое может быть. Платформа 027.

    p.s. Вопрос уже решен, просто интересно в чем может быть дело.
  2. Бухгалтерский угодник
    Offline

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

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

    Mike

    Регистрация:
    12 авг 2008
    Сообщения:
    13
    Симпатии:
    0
    Баллы:
    1
    Даже если, и так, хотя это не так, то значение этой переменной все равно не пустое, это видно на картинке, в отладчике.
  4. Бухгалтерский угодник
    Offline

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

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    Ты в этом уверенн? Присвой переменной, передаваемой в процедуру другое имя (например ДокПарам) и все поймешь
  5. dianofob
    Offline

    dianofob (-_-)y-.o0O

    Регистрация:
    3 июл 2009
    Сообщения:
    711
    Симпатии:
    0
    Баллы:
    26
    а в какой момент ты выводишь Сообщить("ПустоеЗначение(Документ) = 1");?
  6. TopicStarter Overlay
    Mike
    Offline

    Mike

    Регистрация:
    12 авг 2008
    Сообщения:
    13
    Симпатии:
    0
    Баллы:
    1
    Переименовал, не сработало, все осталось по прежнему
    Код:
    //
    Функция глНомерНаПечать(ДокПарам, НеПечататьВходящийНомер = 0) Экспорт
    
    Номер = "";
    Если ПустоеЗначение(ДокПарам)= 0 Тогда 
    // Если документ имеет входящий номер, то печатать будем его.
    Если (глЕстьРеквизитШапки("НомерДокВходящий", ДокПарам.Вид()) = 1) 
    
    
  7. Бухгалтерский угодник
    Offline

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

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    Попробуй использовать функцию
    Код:
    ТипЗначения(ДокПарам)
    
    
    что вернет?
  8. TopicStarter Overlay
    Mike
    Offline

    Mike

    Регистрация:
    12 авг 2008
    Сообщения:
    13
    Симпатии:
    0
    Баллы:
    1
    Пробовал уже
    ТипЗначанияСтр(ДокПарам)="Документ"

    Кстати, щас пока ковырялся, одна из печатных форм заработала, тоесть стло правильно проходить проверку "ПустоеЗначение(Документ)=0", но вторая также глючит.
    Причем, я восстановил старую копию базы, и если раньше 2 формы "не работали" то щас одна работает , а другая нет. Странно все это.
  9. Бухгалтерский угодник
    Offline

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

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    Интересный прикол. Как идет вызов из таблицы? (тип вышажение или шаблон стоит)?
  10. TopicStarter Overlay
    Mike
    Offline

    Mike

    Регистрация:
    12 авг 2008
    Сообщения:
    13
    Симпатии:
    0
    Баллы:
    1
    Да уж, прикол еще тот. В обоих случаях шаблон, в том который сейчас заработал, текст шаблона указан прямо в таблице. Во втором случае ячейка с типом "выражение", но обращается она к списку значений, где написано:
    Код:
    	Рекв.ДобавитьЗначение(Шаблон("СЧЕТ-ФАКТУРА № [глНомерНаПечать(Докум)] от " + ДатаСтр), "Номер");
    
    Кстати , еще одни нюанс, может это имеет значение. Выхов первой (АКТ) и второй (Сч-Ф) формы происходит одним нажатием, то есть клиент жмет на печать акта, и после акта сразу печатаеться Счет-Фактура. Реализовано это так:

    Код:
    Процедура ПриОткрытии()
    
    Если ПустоеЗначение(Форма.Параметр) = 0 Тогда
    
    Докум      = Форма.Параметр.Получить("Контекст");
    Устройство = 1;//Форма.Параметр.Получить("Устройство");
    КолвоКопий = 2;//Форма.Параметр.Получить("КоличествоКопий");
    
    Печать(Докум, Устройство, КолвоКопий);
    // Напечатаем счет-фактуру
    СчФ = СоздатьОбъект("Документ");
    СчФ.ВыбратьПодчиненныеДокументы(,, Докум);
    Пока СчФ.ПолучитьДокумент() = 1 Цикл
    Если СчФ.Вид() = "СчетФактураВыданный" Тогда
    Если СчФ.Проведен() = 1 Тогда
    Параметры = СоздатьОбъект("СписокЗначений");
    Параметры.ДобавитьЗначение(СчФ, "Контекст");
    Параметры.ДобавитьЗначение(1, "Устройство");
    Параметры.ДобавитьЗначение(2, "КоличествоКопий");
    
    ОткрытьФорму("Отчет", Параметры, КаталогИБ() + "ExtForms\PrnForms\SF451.ERT");
    КонецЕсли;
    КонецЕсли;
    КонецЦикла;
    Статусвозврата(0);
    Возврат;
    КонецЕсли;
    
    
    КонецПроцедуры // ПриОткрытии()
    
    
    Писал не я, но мне кажется вроде все здесь нормально. Правда цикл не ненужен, но это мелочи.
  11. Бухгалтерский угодник
    Offline

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

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    Сделай так:
    Код:
    СчФ.ТекущийДокумент()
    
    
    "причина засора" должа исчезнуть
  12. TopicStarter Overlay
    Mike
    Offline

    Mike

    Регистрация:
    12 авг 2008
    Сообщения:
    13
    Симпатии:
    0
    Баллы:
    1
    Ты прав, вроде заработало. Я обращал на это внимание, но думал что причина не в этом, ведь параметр то не пустой. Выходит я ошибался и это имеет значение.
    Осталось не понятным первая форма, которая в друг, сама собой, заработала, там то как раз "Док.ТекущийДокумент()" передается.
    Спасибо за помощь.
Похожие темы
  1. Log1c
    Ответов:
    11
    Просмотров:
    2.542
  2. dark
    Ответов:
    0
    Просмотров:
    1.160
  3. Vektor8
    Ответов:
    5
    Просмотров:
    578
  4. tugev
    Ответов:
    6
    Просмотров:
    646
  5. Vektor8
    Ответов:
    6
    Просмотров:
    690
Загрузка...

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