Вход | Регистрация

1С:Предприятие :: 1С:Предприятие 8 общая

Инвентаризация ОС Макет ИНВ-1

Инвентаризация ОС  Макет ИНВ-1
Я
   anisa8310
 
25.12.12 - 09:48
1С:Предприятие 8.2 (8.2.16.368)
Бухгалтерия предприятия, редакция 2.0 (2.0.40.11)

В макете печ. формы ИНВ-1, не отображаются МОЛ и члены комиссии.
В документе "мол" в табличной части "Основное средство"-имеется, кроме того члены комиссии так же присутствуют с табличной части "Инвентаризационная комиссия".
Не могу понять почему они в печ форму не попадают, смотрела код
 
 
   anisa8310
 
1 - 25.12.12 - 09:48
Функция ПечатьИНВ1() Экспорт
    
   // Создаем колонки Таблицы итогов
 
    ТаблицаИтогов = Новый ТаблицаЗначений();
    ТаблицаИтогов.Колонки.Добавить("ПорядковыйНомерИтогов");
    ТаблицаИтогов.Колонки.Добавить("ИтогНаличиеФактическое");
    ТаблицаИтогов.Колонки.Добавить("ИтогСтоимостьФактическая");
    ТаблицаИтогов.Колонки.Добавить("ИтогНаличиеПоДаннымУчета");
    ТаблицаИтогов.Колонки.Добавить("ИтогСтоимостьПоДаннымУчета");
    ТаблицаИтогов.Колонки.Добавить("КоличествоФактическоеПрописью");
    ТаблицаИтогов.Колонки.Добавить("СтоимостьФактическаяПрописью");
    
   // Варианты заголовков разделов с подписями печатной формы    
 
    ЗаголовокРазделаПодписей = Новый Структура();
    ЗаголовокРазделаПодписей.Вставить("МОЛ",                  "Лицо(а), ответственное(ые) за сохранность основных средств:");
    ЗаголовокРазделаПодписей.Вставить("ПредседательКомиссии", "Председатель комиссии");
    ЗаголовокРазделаПодписей.Вставить("ЧленыКомиссии",        "Члены комиссии");
    ЗаголовокРазделаПодписей.Вставить("Проверяющий",          "Указанные в настоящей описи данные и расчеты проверил");
    
    Запрос = Новый Запрос();
    Запрос.УстановитьПараметр("Ссылка", Ссылка);
    Запрос.Текст = 
    "ВЫБРАТЬ
    |    ИнвентаризацияОС.Дата КАК Дата,
    |    ИнвентаризацияОС.Номер КАК Номер,
    |    ИнвентаризацияОС.Организация КАК Организация,
    |    ИнвентаризацияОС.ПодразделениеОрганизации.Представление КАК ПодразделениеПредставление,
    |    ИнвентаризацияОС.ДатаНачалаИнвентаризации КАК ДатаНачалаИнвентаризации,
    |    ИнвентаризацияОС.ДатаОкончанияИнвентаризации КАК ДатаОкончанияИнвентаризации,
    |    ИнвентаризацияОС.ДокументОснованиеВид КАК ДокументОснованиеВид,
    |    ИнвентаризацияОС.ДокументОснованиеДата КАК ДокументОснованиеДата,
    |    ИнвентаризацияОС.ДокументОснованиеНомер КАК ДокументОснованиеНомер
    |ИЗ
    |    Документ.ИнвентаризацияОС КАК ИнвентаризацияОС
    |ГДЕ
    |    ИнвентаризацияОС.Ссылка = &Ссылка";
    
    Док = Запрос.Выполнить().Выбрать();
    Док.Следующий();
    
    Запрос.Текст =
    "ВЫБРАТЬ
    |    ИнвентаризацияОСИнвентаризационнаяКомиссия.ФизЛицо КАК ФизЛицо,
    |    ИнвентаризацияОСИнвентаризационнаяКомиссия.Председатель КАК Председатель
    |ИЗ
    |    Документ.ИнвентаризацияОС.ИнвентаризационнаяКомиссия КАК ИнвентаризацияОСИнвентаризационнаяКомиссия
    |ГДЕ
    |    ИнвентаризацияОСИнвентаризационнаяКомиссия.Ссылка = &Ссылка
    |
    |УПОРЯДОЧИТЬ ПО
    |    ИнвентаризацияОСИнвентаризационнаяКомиссия.НомерСтроки";
    
    ТаблицаИнвентаризационнаяКомиссия = Запрос.Выполнить().Выгрузить();
    
    Запрос = Новый Запрос();
    Запрос.УстановитьПараметр("Ссылка",      Ссылка);
    Запрос.УстановитьПараметр("Организация", Док.Организация);
    Запрос.УстановитьПараметр("Дата",        Док.Дата);
    Запрос.Текст = 
    "ВЫБРАТЬ РАЗРЕШЕННЫЕ
    |    ИнвентаризацияОСОС.НомерСтроки КАК НомерСтроки,
    |    ИнвентаризацияОСОС.ОсновноеСредство КАК ОсновноеСредство,
    |    ВЫБОР
    |        КОГДА ИнвентаризацияОСОС.ОсновноеСредство.НаименованиеПолное ПОДОБНО """"
    |            ТОГДА ИнвентаризацияОСОС.ОсновноеСредство.Наименование
    |        ИНАЧЕ ИнвентаризацияОСОС.ОсновноеСредство.НаименованиеПолное
    |    КОНЕЦ КАК ОсновноеСредствоНаименованиеПолное,
    |    ИнвентаризацияОСОС.ОсновноеСредство.ДатаВыпуска КАК ДатаВыпуска,
    |    ИнвентаризацияОСОС.ОсновноеСредство.ЗаводскойНомер КАК ЗаводскойНомер,
    |    ПервоначальныеСведенияОСБухгалтерскийУчетСрезПоследних.ИнвентарныйНомер КАК ИнвентарныйНомер,
    |    ИнвентаризацияОСОС.ОсновноеСредство.НомерПаспорта КАК НомерПаспорта,
    |    ИнвентаризацияОСОС.СтоимостьПоДаннымУчета КАК СтоимостьПоДаннымУчета,
    |    ИнвентаризацияОСОС.СтоимостьФактическая КАК СтоимостьФактическая,
    |    ВЫБОР
    |        КОГДА ИнвентаризацияОСОС.НаличиеПоДаннымУчета = ИСТИНА
    |            ТОГДА 1
    |        ИНАЧЕ 0
    |    КОНЕЦ КАК НаличиеПоДаннымУчета,
    |    ВЫБОР
    |        КОГДА ИнвентаризацияОСОС.НаличиеФактическое = ИСТИНА
    |            ТОГДА 1
    |        ИНАЧЕ 0
    |    КОНЕЦ КАК НаличиеФактическое
    |ИЗ
    |    Документ.ИнвентаризацияОС.ОС КАК ИнвентаризацияОСОС
    |        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ПервоначальныеСведенияОСБухгалтерскийУчет.СрезПоследних(
    |        &Дата,
    |        Организация = &Организация
    |            И ОсновноеСредство В
    |                (ВЫБРАТЬ
    |                    ИнвентаризацияОСОС.ОсновноеСредство
    |                ИЗ
    |                    Документ.ИнвентаризацияОС.ОС КАК ИнвентаризацияОСОС
    |                ГДЕ
    |                    ИнвентаризацияОСОС.Ссылка = &Ссылка)) КАК ПервоначальныеСведенияОСБухгалтерскийУчетСрезПоследних
    |        ПО ИнвентаризацияОСОС.ОсновноеСредство = ПервоначальныеСведенияОСБухгалтерскийУчетСрезПоследних.ОсновноеСредство
    |ГДЕ
    |    ИнвентаризацияОСОС.Ссылка = &Ссылка
    |
    |УПОРЯДОЧИТЬ ПО
    |    НомерСтроки";
    ТаблицаОС = Запрос.Выполнить().Выгрузить();
    
    Макет = ПолучитьМакет("ИНВ1");
    
   // Получаем области макета для вывода в табличный документ
 
    Шапка            = Макет.ПолучитьОбласть("Шапка");
    Расписка         = Макет.ПолучитьОбласть("Расписка");
    Примечание       = Макет.ПолучитьОбласть("Примечание");
    Подпись          = Макет.ПолучитьОбласть("Подпись");
    ПолеДаты         = Макет.ПолучитьОбласть("ПолеДаты");
    ЗаголовокТаблицы = Макет.ПолучитьОбласть("ЗаголовокТаблицы");
    ИтогоПоСтранице  = Макет.ПолучитьОбласть("ИтогоПоСтранице");    
    ИтогоПоОписи     = Макет.ПолучитьОбласть("ИтогоПоОписи");
    Итоги            = Макет.ПолучитьОбласть("Итоги");    
    Подсчеты         = Макет.ПолучитьОбласть("Подсчеты");    
    Претензии        = Макет.ПолучитьОбласть("Претензии");    
    
    ТабДокумент = Новый ТабличныйДокумент;
    
   // Зададим параметры макета по умолчанию
 
    ТабДокумент.ПолеСверху              = 10;
    ТабДокумент.ПолеСлева               = 0;
    ТабДокумент.ПолеСнизу               = 0;
    ТабДокумент.ПолеСправа              = 0;
    ТабДокумент.РазмерКолонтитулаСверху = 10;
    ТабДокумент.ОриентацияСтраницы      = ОриентацияСтраницы.Ландшафт;
    
   // Загрузим настройки пользователя
 
    ТабДокумент.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_ИнвентаризацияОС_ИНВ1";

   //////////////////////////////////////////////////////////////////////
 
   // 1-я страница формы
 
    
   // Выведем шапку документа
 
    СведенияОбОрганизации = УправлениеКонтактнойИнформацией.СведенияОЮрФизЛице(Док.Организация, Док.Дата);
    
    Шапка.Параметры.Заполнить(Док);
    Шапка.Параметры.Организация          = ФормированиеПечатныхФорм.ОписаниеОрганизации(СведенияОбОрганизации);
    Шапка.Параметры.ОрганизацияКодПоОКПО = СведенияОбОрганизации.КодПоОКПО;
    Шапка.Параметры.РежимСобственности   = "в собственности";
    Шапка.Параметры.Подразделение        = Док.ПодразделениеПредставление;
    Шапка.Параметры.Местонахождение      = Док.ПодразделениеПредставление;
    
    Шапка.Параметры.НомерДокумента = ОбщегоНазначения.ПолучитьНомерНаПечать(Док);
    Шапка.Параметры.ДатаДокумента  = Док.Дата;
    
    ТабДокумент.Вывести(Шапка);
    
   // Выведем расписку МОЛов 
 
    ТабДокумент.Вывести(Расписка);
    
   // Получим список МОЛ на основании списка ОС
 
    СписокОС = ТаблицаОС.ВыгрузитьКолонку("ОсновноеСредство");
    
    Запрос = Новый Запрос();
    Запрос.УстановитьПараметр("ОсновноеСредство", СписокОС);
    Запрос.УстановитьПараметр("Организация",      Док.Организация);
    Запрос.УстановитьПараметр("Дата",             Док.Дата);
    
    Запрос.Текст =
    "ВЫБРАТЬ
    |    МестонахождениеОСБухгалтерскийУчетСрезПоследних.МОЛ КАК МОЛ
    |ИЗ
    |    РегистрСведений.МестонахождениеОСБухгалтерскийУчет.СрезПоследних(&Дата, Организация = &Организация И ОсновноеСредство В (&ОсновноеСредство)) КАК МестонахождениеОСБухгалтерскийУчетСрезПоследних";
    
    Результат = Запрос.Выполнить().Выгрузить();
    СписокМОЛ = Результат.ВыгрузитьКолонку("МОЛ");
    
   // Выведем подписи МОЛов
 
    ВыводитьЗаголовок  = Истина;// Флаг вывода заголовка набора подписей
 
    ВыводитьПримечание = Истина;// Флаг вывода примечания-звездочки
 
    
    ДанныеМОЛ = ОбщегоНазначения.ДанныеФизЛиц(Док.Организация, СписокМОЛ, Док.Дата);
    
   // Сначала выведем МОЛов из выборки
 
    Для Каждого СтрокаМОЛ Из ДанныеМОЛ Цикл
        
        ПодписьСПримечанием = Новый Массив;
        ПодписьСПримечанием.Добавить(Подпись);
        ПодписьСПримечанием.Добавить(Примечание);
        
        Если НЕ ФормированиеПечатныхФорм.ПроверитьВыводТабличногоДокумента(ТабДокумент, ПодписьСПримечанием) Тогда
            
           // Выведем примечание
 
            ТабДокумент.Вывести(Примечание);
            ВыводитьПримечание = Ложь;
            
           // Выведем разрыв страницы
 
            ТабДокумент.ВывестиГоризонтальныйРазделительСтраниц();
            ВыводитьЗаголовок = Истина;// на новой странице выведем заголовок набора подписей
 
        
        КонецЕсли;
        
        Подпись.Параметры.ЗаголовокРазделаПодписей = ?(ВыводитьЗаголовок, 
                                                       ЗаголовокРазделаПодписей.МОЛ,
                                                       "");
        Подпись.Параметры.Должность                = СтрокаМОЛ.Должность;
        Подпись.Параметры.РасшифровкаПодписи       = СтрокаМОЛ.Представление;
        
        ТабДокумент.Вывести(Подпись);
        
        ВыводитьЗаголовок = Ложь;// в следующей итерации вывод заголовка не нужен
 
        
    КонецЦикла;
    
   // Затем выведем пустые места для подписей (чтобы в итоге получилось не менее 3-х
 
   // подписей, как в форме, утвержденной Госкомстатом)
 
    Если ДанныеМОЛ.Количество() < 3 Тогда
        
        ПодписьСПримечанием = Новый Массив;
        ПодписьСПримечанием.Добавить(Подпись);
        ПодписьСПримечанием.Добавить(Примечание);
        
        Если НЕ ФормированиеПечатныхФорм.ПроверитьВыводТабличногоДокумента(ТабДокумент, ПодписьСПримечанием) Тогда
            
           // Выведем примечание
 
            ТабДокумент.Вывести(Примечание);
            ВыводитьПримечание = Ложь;
            
           // Выведем разрыв страницы
 
            ТабДокумент.ВывестиГоризонтальныйРазделительСтраниц();
            ВыводитьЗаголовок = Истина;// на новой странице выведем заголовок набора подписей
 
        
        КонецЕсли;
        
        Для Итератор = (ДанныеМОЛ.Количество() + 1) По 3 Цикл
            
            Подпись.Параметры.ЗаголовокРазделаПодписей = ?(ВыводитьЗаголовок, 
                                                           ЗаголовокРазделаПодписей.МОЛ,
                                                           "");
            Подпись.Параметры.Должность                = "";
            Подпись.Параметры.РасшифровкаПодписи       = "";
            
            ТабДокумент.Вывести(Подпись);
            
            ВыводитьЗаголовок = Ложь;// в следующей итерации вывод заголовка не нужен
 
            
        КонецЦикла;
    
    КонецЕсли;
    
   // Выведем примечание
 
    Если ВыводитьПримечание Тогда
        ТабДокумент.Вывести(Примечание);
    КонецЕсли;
    
   // Выведем разрыв страницы
 
    ТабДокумент.ВывестиГоризонтальныйРазделительСтраниц();
    
   //////////////////////////////////////////////////////////////////////
 
   // 2-я страница формы
 
    
   // Выведем заголовок таблицы    
 
    ТабДокумент.Вывести(ЗаголовокТаблицы);
    
    ПорядковыйНомерИтогов = 1;// счетчик количества итоговых строк в таблице
 
    
    НаличиеФактическоеПоСтранице          = 0;
    СтоимостьФактическаяПоСтранице        = 0;
    НаличиеПоДаннымУчетаПоСтранице        = 0;
    СтоимостьПоДаннымУчетаПоСтранице      = 0;
    КоличествоПорядковыхНомеровНаСтранице = 0;
    
   // Выведем строки таблицы
 
    Для Каждого СтрокаОС Из ТаблицаОС Цикл
        
        СтрокаТаблицы   = Макет.ПолучитьОбласть("СтрокаТаблицы");
        
        СтрокаТаблицы.Параметры.Заполнить(СтрокаОС);
        
       // Присвоим имена с номерами строк областям таблицы.
 
       // Номера потребуются для включения/отключения видимости значений в ячейках.
 
        СтрокаТаблицы.Области.НаличиеФактическое.Имя     = "НаличиеФактическое" + СтрокаОС.НомерСтроки;
        СтрокаТаблицы.Области.СтоимостьФактическая.Имя   = "СтоимостьФактическая" + СтрокаОС.НомерСтроки;
        СтрокаТаблицы.Области.НаличиеПоДаннымУчета.Имя   = "НаличиеПоДаннымУчета" + СтрокаОС.НомерСтроки;
        СтрокаТаблицы.Области.СтоимостьПоДаннымУчета.Имя = "СтоимостьПоДаннымУчета" + СтрокаОС.НомерСтроки;
        
        СтрокаСПодвалом = Новый Массив;
        СтрокаСПодвалом.Добавить(СтрокаТаблицы);
        СтрокаСПодвалом.Добавить(ИтогоПоСтранице);
        СтрокаСПодвалом.Добавить(Итоги);
        
        Если НЕ ФормированиеПечатныхФорм.ПроверитьВыводТабличногоДокумента(ТабДокумент, СтрокаСПодвалом) Тогда
            
            ИтогоПоСтранице = Макет.ПолучитьОбласть("ИтогоПоСтранице");
            
           // Присвоим имена с порядковыми номерами итогов областям таблицы.
 
           // Номера потребуются для включения/отключения видимости значений в ячейках.
 
            ИтогоПоСтранице.Области.ИтогНаличиеФактическое.Имя     = "ИтогНаличиеФактическое" + ПорядковыйНомерИтогов;
            ИтогоПоСтранице.Области.ИтогСтоимостьФактическая.Имя   = "ИтогСтоимостьФактическая" + ПорядковыйНомерИтогов;
            ИтогоПоСтранице.Области.ИтогНаличиеПоДаннымУчета.Имя   = "ИтогНаличиеПоДаннымУчета" + ПорядковыйНомерИтогов;
            ИтогоПоСтранице.Области.ИтогСтоимостьПоДаннымУчета.Имя = "ИтогСтоимостьПоДаннымУчета" + ПорядковыйНомерИтогов;
            
           // Выведем заголовок итогов по странице
 
            ИтогоПоСтранице.Параметры.ИтогСтоимостьФактическая   = СтоимостьФактическаяПоСтранице;
            ИтогоПоСтранице.Параметры.ИтогНаличиеФактическое     = НаличиеФактическоеПоСтранице;
            ИтогоПоСтранице.Параметры.ИтогСтоимостьПоДаннымУчета = СтоимостьПоДаннымУчетаПоСтранице;
            ИтогоПоСтранице.Параметры.ИтогНаличиеПоДаннымУчета   = НаличиеПоДаннымУчетаПоСтранице;
            
            ТабДокумент.Вывести(ИтогоПоСтранице);
            
            Итоги = Макет.ПолучитьОбласть("Итоги");    
            
           // Присвоим имена с порядковыми номерами итогов областям таблицы.
 
           // Номера потребуются для включения/отключения видимости значений в ячейках.
 
            Итоги.Области.КоличествоФактическоеПрописью.Имя   = "КоличествоФактическоеПрописью" + ПорядковыйНомерИтогов;
            Итоги.Области.СтоимостьФактическаяПрописью.Имя    = "СтоимостьФактическаяПрописью" + ПорядковыйНомерИтогов;
            
            КоличествоФактическоеПрописью = ЧислоПрописью(НаличиеФактическоеПоСтранице,, ",,,ж,,,,,0");
            СтоимостьФактическаяПрописью  = ЧислоПрописью(СтоимостьФактическаяПоСтранице,, "рубль, рубля, рублей, м, копейка, копейки, копеек, ж, 2");
            
           // Выведем итоговые строки
 
            Итоги.Параметры.КоличествоПорядковыхНомеровПрописью = ЧислоПрописью(КоличествоПорядковыхНомеровНаСтранице,, ",,,м,,,,,0");
            Итоги.Параметры.КоличествоФактическоеПрописью       = КоличествоФактическоеПрописью;
            Итоги.Параметры.СтоимостьФактическаяПрописью        = СтоимостьФактическаяПрописью;
            
            ТабДокумент.Вывести(Итоги);
            
           // Добавим значения итогов по странице в таблицу итогов.
 
           // Они потребуются при включении видимости значений ячеек.
 
            НоваяСтрока = ТаблицаИтогов.Добавить();
            НоваяСтрока.ПорядковыйНомерИтогов         = ПорядковыйНомерИтогов;
            НоваяСтрока.ИтогНаличиеФактическое        = НаличиеФактическоеПоСтранице;
            НоваяСтрока.ИтогСтоимостьФактическая      = СтоимостьФактическаяПоСтранице;
            НоваяСтрока.ИтогНаличиеПоДаннымУчета      = НаличиеПоДаннымУчетаПоСтранице;
            НоваяСтрока.ИтогСтоимостьПоДаннымУчета    = СтоимостьПоДаннымУчетаПоСтранице;
            НоваяСтрока.КоличествоФактическоеПрописью = КоличествоФактическоеПрописью;
            НоваяСтрока.СтоимостьФактическаяПрописью  = СтоимостьФактическаяПрописью;
            
            ПорядковыйНомерИтогов = ПорядковыйНомерИтогов + 1;
            
           // Выведем разрыв страницы
 
            ТабДокумент.ВывестиГоризонтальныйРазделительСтраниц();
            
           // Выведем заголовок таблицы    
 
            ТабДокумент.Вывести(ЗаголовокТаблицы);
            
            НаличиеФактическоеПоСтранице          = 0;
            СтоимостьФактическаяПоСтранице        = 0;
            НаличиеПоДаннымУчетаПоСтранице        = 0;
            СтоимостьПоДаннымУчетаПоСтранице      = 0;
            КоличествоПорядковыхНомеровНаСтранице = 0;
            
        КонецЕсли;
        
        ТабДокумент.Вывести(СтрокаТаблицы);
        
        НаличиеФактическоеПоСтранице          = НаличиеФактическоеПоСтранице + СтрокаОС.НаличиеФактическое;
        СтоимостьФактическаяПоСтранице        = СтоимостьФактическаяПоСтранице + СтрокаОС.СтоимостьФактическая;
        НаличиеПоДаннымУчетаПоСтранице        = НаличиеПоДаннымУчетаПоСтранице + СтрокаОС.НаличиеПоДаннымУчета;
        СтоимостьПоДаннымУчетаПоСтранице      = СтоимостьПоДаннымУчетаПоСтранице + СтрокаОС.СтоимостьПоДаннымУчета;
        КоличествоПорядковыхНомеровНаСтранице = КоличествоПорядковыхНомеровНаСтранице + 1;
        
    КонецЦикла;        
    
    ИтогоПоСтранице = Макет.ПолучитьОбласть("ИтогоПоСтранице");
    
   // Присвоим имена с порядковыми номерами итогов областям таблицы.
 
   // Номера потребуются для включения/отключения видимости значений в ячейках.
 
    ИтогоПоСтранице.Области.ИтогНаличиеФактическое.Имя     = "ИтогНаличиеФактическое" + ПорядковыйНомерИтогов;
    ИтогоПоСтранице.Области.ИтогСтоимостьФактическая.Имя   = "ИтогСтоимостьФактическая" + ПорядковыйНомерИтогов;
    ИтогоПоСтранице.Области.ИтогНаличиеПоДаннымУчета.Имя   = "ИтогНаличиеПоДаннымУчета" + ПорядковыйНомерИтогов;
    ИтогоПоСтранице.Области.ИтогСтоимостьПоДаннымУчета.Имя = "ИтогСтоимостьПоДаннымУчета" + ПорядковыйНомерИтогов;
    
   // Выведем заголовок итогов по странице
 
    ИтогоПоСтранице.Параметры.ИтогСтоимостьФактическая   = СтоимостьФактическаяПоСтранице;
    ИтогоПоСтранице.Параметры.ИтогНаличиеФактическое     = НаличиеФактическоеПоСтранице;
    ИтогоПоСтранице.Параметры.ИтогСтоимостьПоДаннымУчета = СтоимостьПоДаннымУчетаПоСтранице;
    ИтогоПоСтранице.Параметры.ИтогНаличиеПоДаннымУчета   = НаличиеПоДаннымУчетаПоСтранице;
            
    ТабДокумент.Вывести(ИтогоПоСтранице);
    
    Итоги = Макет.ПолучитьОбласть("Итоги");    
    
   // Присвоим имена с порядковыми номерами итогов областям таблицы.
 
   // Номера потребуются для включения/отключения видимости значений в ячейках.
 
    Итоги.Области.КоличествоФактическоеПрописью.Имя   = "КоличествоФактическоеПрописью" + ПорядковыйНомерИтогов;
    Итоги.Области.СтоимостьФактическаяПрописью.Имя    = "СтоимостьФактическаяПрописью" + ПорядковыйНомерИтогов;
    
    КоличествоФактическоеПрописью = ЧислоПрописью(НаличиеФактическоеПоСтранице,, ",,,ж,,,,,0");
    СтоимостьФактическаяПрописью  = ЧислоПрописью(СтоимостьФактическаяПоСтранице,, "рубль, рубля, рублей, м, копейка, копейки, копеек, ж, 2");
    
   // Выведем итоговые строки
 
    Итоги.Параметры.КоличествоПорядковыхНомеровПрописью = ЧислоПрописью(КоличествоПорядковыхНомеровНаСтранице,, ",,,м,,,,,0");
    Итоги.Параметры.КоличествоФактическоеПрописью       = КоличествоФактическоеПрописью;
    Итоги.Параметры.СтоимостьФактическаяПрописью        = СтоимостьФактическаяПрописью;
    
    ТабДокумент.Вывести(Итоги);
    
   // Добавим значения итогов по странице в таблицу итогов.
 
   // Они потребуются при включении видимости значений ячеек.
 
    НоваяСтрока = ТаблицаИтогов.Добавить();
    НоваяСтрока.ПорядковыйНомерИтогов         = ПорядковыйНомерИтогов;
    НоваяСтрока.ИтогНаличиеФактическое        = НаличиеФактическоеПоСтранице;
    НоваяСтрока.ИтогСтоимостьФактическая      = СтоимостьФактическаяПоСтранице;
    НоваяСтрока.ИтогНаличиеПоДаннымУчета      = НаличиеПоДаннымУчетаПоСтранице;
    НоваяСтрока.ИтогСтоимостьПоДаннымУчета    = СтоимостьПоДаннымУчетаПоСтранице;
    НоваяСтрока.КоличествоФактическоеПрописью = КоличествоФактическоеПрописью;
    НоваяСтрока.СтоимостьФактическаяПрописью  = СтоимостьФактическаяПрописью;
    
    ПорядковыйНомерИтогов = ПорядковыйНомерИтогов + 1;
    
   // Выведем разрыв страницы
 
    ТабДокумент.ВывестиГоризонтальныйРазделительСтраниц();
    
   //////////////////////////////////////////////////////////////////////
 
   // 3-я страница формы
 
    
   // Выведем заголовок итогов по описи
 
    ТабДокумент.Вывести(ИтогоПоОписи);
    
    Итоги = Макет.ПолучитьОбласть("Итоги");    
    
   // Присвоим имена с порядковыми номерами итогов областям таблицы.
 
   // Номера потребуются для включения/отключения видимости значений в ячейках.
 
    Итоги.Области.КоличествоФактическоеПрописью.Имя   = "КоличествоФактическоеПрописьюПоОписи";
    Итоги.Области.СтоимостьФактическаяПрописью.Имя    = "СтоимостьФактическаяПрописьюПоОписи";
    
   // Выведем итоговые строки
 
    Итоги.Параметры.КоличествоПорядковыхНомеровПрописью = ЧислоПрописью(ТаблицаОС.Количество(),, ",,,м,,,,,0");
    Итоги.Параметры.КоличествоФактическоеПрописью       = ЧислоПрописью(ТаблицаОС.Итог("НаличиеФактическое"),, ",,,ж,,,,,0");
    Итоги.Параметры.СтоимостьФактическаяПрописью        = ЧислоПрописью(ТаблицаОС.Итог("СтоимостьФактическая"),, "рубль, рубля, рублей, м, копейка, копейки, копеек, ж, 2");
    
    ТабДокумент.Вывести(Итоги);
    
   // Выведем фразу о подсчетах
 
    ТабДокумент.Вывести(Подсчеты);
    
   // Выведем подпись председателя инвентаризационной комиссии
 
    ТаблицаИнвентаризационнаяКомиссия.Индексы.Добавить("Председатель");
    ПредседательКомиссии = ТаблицаИнвентаризационнаяКомиссия.Найти(Истина, "Председатель");
    
    Если НЕ (ПредседательКомиссии = Неопределено) Тогда
        
        ДанныеПредседателя = ОбщегоНазначения.ДанныеФизЛица(Док.Организация, ПредседательКомиссии.ФизЛицо, Док.Дата);
            
        Подпись.Параметры.ЗаголовокРазделаПодписей = ЗаголовокРазделаПодписей.ПредседательКомиссии;
        Подпись.Параметры.Должность                = ДанныеПредседателя.Должность;
        Подпись.Параметры.РасшифровкаПодписи       = ДанныеПредседателя.Представление;
        
    Иначе
        
        Подпись.Параметры.ЗаголовокРазделаПодписей = ЗаголовокРазделаПодписей.ПредседательКомиссии;
        Подпись.Параметры.Должность                = "";
        Подпись.Параметры.РасшифровкаПодписи       = "";
        
    КонецЕсли;
        
    ТабДокумент.Вывести(Подпись);
    
   // Выведем подписи членов комиссии
 
    ВыводитьЗаголовок = Истина;
    
    КоличествоЧленовКомиссии = 0;
    
   // Сначала выведем членов комиссии из выборки
 
    Для Каждого ЧленКомиссии Из ТаблицаИнвентаризационнаяКомиссия Цикл
        
        Если ЧленКомиссии.Председатель Тогда
            Продолжить;
        КонецЕсли;
        
        Если НЕ ФормированиеПечатныхФорм.ПроверитьВыводТабличногоДокумента(ТабДокумент, Подпись) Тогда
            
           // Выведем разрыв страницы
 
            ТабДокумент.ВывестиГоризонтальныйРазделительСтраниц();
            ВыводитьЗаголовок = Истина;// на новой странице выведем заголовок набора подписей
 
        
        КонецЕсли;
        
        КоличествоЧленовКомиссии = КоличествоЧленовКомиссии + 1;
        
        ДанныеЧленаКомиссии = ОбщегоНазначения.ДанныеФизЛица(Док.Организация, ЧленКомиссии.ФизЛицо, Док.Дата);

        
        Подпись.Параметры.ЗаголовокРазделаПодписей = ?(ВыводитьЗаголовок, 
                                                       ЗаголовокРазделаПодписей.ЧленыКомиссии,
                                                       "");
        Подпись.Параметры.Должность                = ДанныеЧленаКомиссии.Должность;
        Подпись.Параметры.РасшифровкаПодписи       = ДанныеЧленаКомиссии.Представление;
        
        ТабДокумент.Вывести(Подпись);
        
        ВыводитьЗаголовок = Ложь;// в следующей итерации вывод заголовка не нужен
 
        
    КонецЦикла;
    
   // Затем выведем пустые места для подписей (чтобы в итоге получилось не менее 3-х
 
   // подписей, как в форме, утвержденной Госкомстатом)
 
    Если КоличествоЧленовКомиссии < 3 Тогда
        
        Если НЕ ФормированиеПечатныхФорм.ПроверитьВыводТабличногоДокумента(ТабДокумент, Подпись) Тогда
            
           // Выведем разрыв страницы
 
            ТабДокумент.ВывестиГоризонтальныйРазделительСтраниц();
            ВыводитьЗаголовок = Истина;// на новой странице выведем заголовок набора подписей
 
        
        КонецЕсли;
        
        Для Итератор = (КоличествоЧленовКомиссии + 1) По 3 Цикл
            
            Подпись.Параметры.ЗаголовокРазделаПодписей = ?(ВыводитьЗаголовок, 
                                                           ЗаголовокРазделаПодписей.ЧленыКомиссии,
                                                           "");
            Подпись.Параметры.Должность                = "";
            Подпись.Параметры.РасшифровкаПодписи       = "";
            
            ТабДокумент.Вывести(Подпись);
            
            ВыводитьЗаголовок = Ложь;// в следующей итерации вывод заголовка не нужен
 
            
        КонецЦикла;
    
    КонецЕсли;
    
   // Перед выводом следующего набора подписей, нужно проверить, поместится ли он
 
   // на страницу целиком. Если нет, нужно начать вывод со следующей страницы.
 
    
   // Создаем массив строк для проверки, помещаются ли они на страницу
 
    СтрокаСПодвалом = Новый Массив;
    СтрокаСПодвалом.Добавить(Претензии);
    Для Итератор = 1 По ДанныеМОЛ.Количество() Цикл
        СтрокаСПодвалом.Добавить(Подпись);
    КонецЦикла;
    СтрокаСПодвалом.Добавить(ПолеДаты);
    СтрокаСПодвалом.Добавить(Подпись);
    СтрокаСПодвалом.Добавить(ПолеДаты);
    
   // Если планируемый набор подписей не помещается, начинаем новую страницу
 
    Если НЕ ФормированиеПечатныхФорм.ПроверитьВыводТабличногоДокумента(ТабДокумент, СтрокаСПодвалом) Тогда
        
       // Выведем разрыв страницы
 
        ТабДокумент.ВывестиГоризонтальныйРазделительСтраниц();
        
    КонецЕсли;
    
   // Выведем раздел об отсутствии претензий МОЛов
 
    Если ТаблицаОС.Количество() > 0 Тогда
        Претензии.Параметры.НомерСтрокиНачальный = ТаблицаОС[0].НомерСтроки;
        Претензии.Параметры.НомерСтрокиКонечный  = ТаблицаОС[ТаблицаОС.Количество() - 1].НомерСтроки;
    Иначе    
        Претензии.Параметры.НомерСтрокиНачальный = "______";
        Претензии.Параметры.НомерСтрокиКонечный  = "______";
    КонецЕсли;
    
    ТабДокумент.Вывести(Претензии);
    
   // Выведем подписи МОЛов
 
    ВыводитьЗаголовок = Истина;

   // Сначала выведем МОЛов из выборки
 
    Для Каждого СтрокаМОЛ Из ДанныеМОЛ Цикл
        
        ПодписьСДатой = Новый Массив;
        ПодписьСДатой.Добавить(Подпись);
        ПодписьСДатой.Добавить(ПолеДаты);
        
        Если НЕ ФормированиеПечатныхФорм.ПроверитьВыводТабличногоДокумента(ТабДокумент, ПодписьСДатой) Тогда
            
           // Выведем разрыв страницы
 
            ТабДокумент.ВывестиГоризонтальныйРазделительСтраниц();
            ВыводитьЗаголовок = Истина;// на новой странице выведем заголовок набора подписей
 
        
        КонецЕсли;
        
        Подпись.Параметры.ЗаголовокРазделаПодписей = ?(ВыводитьЗаголовок, 
                                                       ЗаголовокРазделаПодписей.МОЛ,
                                                       "");
        Подпись.Параметры.Должность                = СтрокаМОЛ.Должность;
        Подпись.Параметры.РасшифровкаПодписи       = СтрокаМОЛ.Представление;
        
        ТабДокумент.Вывести(Подпись);
        
        ВыводитьЗаголовок = Ложь;// в следующей итерации вывод заголовка не нужен
 
        
    КонецЦикла;
    
   // Затем выведем пустые места для подписей (чтобы в итоге получилось не менее 3-х
 
   // подписей, как в форме, утвержденной Госкомстатом)
 
    Если ДанныеМОЛ.Количество() < 3 Тогда
        
        ПодписьСДатой = Новый Массив;
        ПодписьСДатой.Добавить(Подпись);
        ПодписьСДатой.Добавить(ПолеДаты);
        
        Если НЕ ФормированиеПечатныхФорм.ПроверитьВыводТабличногоДокумента(ТабДокумент, ПодписьСДатой) Тогда
            
           // Выведем разрыв страницы
 
            ТабДокумент.ВывестиГоризонтальныйРазделительСтраниц();
            ВыводитьЗаголовок = Истина;// на новой странице выведем заголовок набора подписей
 
        
        КонецЕсли;
            
        Для Итератор = (ДанныеМОЛ.Количество() + 1) По 3 Цикл
            
            Подпись.Параметры.ЗаголовокРазделаПодписей = ?(ВыводитьЗаголовок, 
                                                           ЗаголовокРазделаПодписей.МОЛ,
                                                           "");
            Подпись.Параметры.Должность                = "";
            Подпись.Параметры.РасшифровкаПодписи       = "";
            
            ТабДокумент.Вывести(Подпи
   Cube
 
2 - 25.12.12 - 09:50
Отладчиком пользоваться так и не научилась? Пора бы...
   anisa8310
 
3 - 25.12.12 - 09:52
Нет ещё не пользовалась, у вас то попадает в макет содержимое дока?
   Cube
 
4 - 25.12.12 - 09:56
(3) А че ты мне ВЫкаешь?))))
   Cube
 
5 - 25.12.12 - 09:56
(3) У нас УПП, но в демо базе 2.0.32 попадают. Учись пользоваться отладчиком.
   cw014
 
6 - 25.12.12 - 09:58
ИнвентаризацияОСОС - здорово

Ну Мол у тебя как то и в запросе не фигурирует, а вот по комиссии могу сказать, что где то у тебя по физ лицам данных не хватает
   anisa8310
 
7 - 25.12.12 - 10:01
Все, спасибо! оказывается в РС не бало ФИО...СПАСИБО ЗАПИНОК!!!(2) ВСЕМ СПАСИБО!!! С наступающем!!!
   anisa8310
 
8 - 25.12.12 - 10:02
физ лица-а там ещё кнопка...ФИО-зачем она нужна...блин..ну ладно видимо нужна..вдруг Фамилия.. поменяется
   Cube
 
9 - 25.12.12 - 10:03
(8) История ФИО. Всю жизнь там была.
   anisa8310
 
10 - 25.12.12 - 10:04
вот мой след. вопрос посложнее..будет-я пока попробую сделать-но уже пробовала  не получилось...надо добить, а то совесть мучает..по ЗУПу.полезно кстати всем будет)
 
 Рекламное место пустует
   anisa8310
 
11 - 25.12.12 - 10:04
(9) история всю жизнь была..да только зачем то не заполнили бухи некоторых как надо
   Cube
 
12 - 25.12.12 - 10:06
(11) Там всё заполняется автоматом. Видимо, это последствия какого-то кривого переноса или обмена...

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует