8.х Сличительная ведомость

Тема в разделе "Общие вопросы "1С:Предприятие 8"", создана пользователем Alla, 27 авг 2009.

  1. TopicStarter Overlay
    Alla
    Offline

    Alla Опытный в 1С

    Регистрация:
    28 дек 2007
    Сообщения:
    150
    Симпатии:
    0
    Баллы:
    26
    Здравствуйте! УТ 8.1 10.3.7.9.
    В документе "Инвентаризация товаров на складе" есть печатная форма "Сличительная ведомость". При печати этой ведомости часть колонок пустая - не заполняется (н-р, излишек, недостача и т.д.). Как они заполняются? Как то же они должны заполняться автоматически? Подскажите, если кто знает, пожалуйста!
  2. mialord
    Offline

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

    Регистрация:
    31 июл 2009
    Сообщения:
    5.398
    Симпатии:
    40
    Баллы:
    54
    Колонки заполняются автоматически, вот часть кода для понимания что и откуда берется

    Код:
    Запрос.Текст =
    "ВЫБРАТЬ
    |	Номер  КАК НомерДокумента,
    |	Дата   КАК ДатаДокумента,
    |	Дата   КАК ДатаНачалаИнвентаризации,
    |	Организация КАК Руководители,
    |	Организация,
    |	Склад.Представление КАК ПредставлениеСклада,
    |	Товары.(
    |		НомерСтроки КАК Номер,
    |		Номенклатура,
    |		Номенклатура.НаименованиеПолное КАК ТоварНаименование,
    |		Номенклатура." + ТоварКод + "   КАК ТоварКод,
    |		ЕдиницаИзмерения.Представление  КАК ЕдиницаИзмеренияНаименование,
    |		ЕдиницаИзмерения.ЕдиницаПоКлассификатору.Код КАК ЕдиницаИзмеренияКодПоОКЕИ,
    |		Количество                     КАК ФактКоличество,
    |		КоличествоУчет                 КАК БухКоличество,
    |		ВЫБОР
    |			КОГДА Склад.ВидСклада = &ВидСкладаНТТ ТОГДА ЦенаВРознице
    |			ИНАЧЕ Цена * &Курс / &Кратность
    |		КОНЕЦ КАК Цена,
    |		ВЫБОР
    |			КОГДА Склад.ВидСклада = &ВидСкладаНТТ ТОГДА Количество * ЦенаВРознице
    |			ИНАЧЕ Сумма * &Курс / &Кратность
    |		КОНЕЦ КАК ФактСумма,
    |		ВЫБОР
    |			КОГДА Склад.ВидСклада = &ВидСкладаНТТ ТОГДА КоличествоУчет *ЦенаВРознице
    |			ИНАЧЕ СуммаУчет * &Курс / &Кратность
    |		КОНЕЦ КАК БухСумма,
    |		ХарактеристикаНоменклатуры     КАК Характеристика,
    |		СерияНоменклатуры КАК Серия
    |	)
    |ИЗ
    |	Документ.ИнвентаризацияТоваровНаСкладе КАК ИнвентаризацияТоваровНаСкладе
    |
    |ГДЕ
    |	ИнвентаризацияТоваровНаСкладе.Ссылка = &ТекущийДокумент";
    
    Излишки и недостачи определяются так:

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

    Alla Опытный в 1С

    Регистрация:
    28 дек 2007
    Сообщения:
    150
    Симпатии:
    0
    Баллы:
    26
    ой, а подскажите, пожалуйста, это в модуле в какую процедуру заходить надо?

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