Прошу вашей помощи, 1С 7.7 ТиС особенности отчёта...
01.06.2010
15:12
#11
"Ит = СоздатьОбъект("БухгалтерскиеИтоги");
//Ит.Рассчитать(ВыбНачПериода,ВыбКонПериода,"46;ИН",0);
Ит.ВыполнитьЗапрос(ВыбНачПериода,ВыбКонПериода,"46",,,3);
//Создание объекта типа Запрос
вв=Перечисление.ПризнакРасхода.Продажа;
вв1=перечисление.Признакприхода.ВозвратОтПокупателя;
Запрос = СоздатьОбъект("Запрос");
ТекстЗапроса =
"//{{ЗАПРОС(Сформировать)
|Период с ВыбНачПериода по ВыбКонПериода;
|Обрабатывать НеПомеченныеНаУдаление;
|ТекущийДокумент = Регистр.Партий.ТекущийДокумент;
|Клиент = Регистр.Партий.ТекущийДокумент.РНС.Контрагент, Регистр.Партий.ТекущийДокумент.ПНС.Контрагент;
|Себестоимость = Регистр.Партий.Себестоимость;
|ДопСтоимость = Регистр.Партий.ДопСтоимость;
|Оборот = Регистр.Партий.Оборот;
|ДопЗатраты = Регистр.Партий.ДопЗатраты;
|ИН = Регистр.Партий.ИН;
|Склад = Регистр.Партий.Склад;
|Филиал = Регистр.Партий.ТекущийДокумент.ДокОснование.Филиал;
//|Филиал = Регистр.Партий.ТекущийДокумент.РНС.ДокОснование.Филиал;
|КодОперации = Регистр.Партий.ТекущийДокумент.РНС.ПризнакРасхода;
|КодОперации1 = Регистр.Партий.ТекущийДокумент.ПНС.ПризнакПрихода;
|Манагер = Регистр.Партий.ТекущийДокумент.ДокОснование.Исполнитель;
//|Манагер = Регистр.Партий.ТекущийДокумент.РНС.ДокОснование.Исполнитель;
|Функция СебестоимостьРасход = Расход(Себестоимость);
|Функция ДопСтоимостьРасход = Расход(ДопСтоимость);
|Функция СебестоимостьПриход = Приход(Себестоимость);
|Функция ДопСтоимостьПриход = Приход(ДопСтоимость);
|Функция ОборотСумма = Сумма(Оборот);
|Функция ДопЗатратыСумма = Сумма(ДопЗатраты);
|Функция ИНСумма = Сумма(ИН);
|Группировка Филиал;
|Группировка Манагер без групп;
//|Группировка КодОперации;
|Условие((КодОперации=вв)или(КодОперации1=вв1));
//|Условие(ТекущийДокумент.Вид()=""""ПНС"""");
|"//}}ЗАПРОС
;
Если Кл=1 ТОгда
ТекстЗапроса=ТекстЗапроса+"
|Группировка Клиент без групп;";
Иначеесли Нак=1 ТОгда
ТекстЗапроса=ТекстЗапроса+"
|Группировка ТекущийДокумент;";
КонецЕсли;
// Если ошибка в запросе, то выход из процедуры
Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда
Возврат;
КонецЕсли;
// Подготовка к заполнению выходных форм данными запроса
Таб = СоздатьОбъект("Таблица");
Таб.ИсходнаяТаблица("Сформировать");
// Заполнение полей "Заголовок"
Таб.ВывестиСекцию("Заголовок");
Состояние("Заполнение выходной таблицы...");
Таб.Опции(0, 0, Таб.ВысотаТаблицы(), 0);
Пока Запрос.Группировка(1) = 1 Цикл
Таб.ВывестиСекцию("Филиал");
Пока Запрос.Группировка(2) = 1 Цикл
// Заполнение полей Манагер
Таб.ВывестиСекцию("Манагер");
Если (НАК =1) ИЛИ (Кл=1) Тогда
Пока Запрос.Группировка(3) = 1 Цикл
Если Кл=1 ТОгда
//Сообщить(Запрос.Клиент.ПолноеНаименование);
Таб.ВывестиСекцию("Клиент");
Иначеесли Нак=1 ТОгда
Таб.ВывестиСекцию("ТекущийДокумент");
КонецЕсли;
КонецЦикла;
КонецЕсли;
КонецЦикла;
КонецЦикла;
//ДОБ=Ит.ДО(СчетПоКоду("46"),,,);
//КОБ=Ит.КО(СчетПоКоду("46"),,,);
ДОБ=Ит.ДО();
КОБ=Ит.КО();
БухПрибыль=КОБ-ДОБ;
БухОборот=КОБ;
Ит.ВыбратьКорСчета();
Пока Ит.ПолучитьКорСчет() = 1 Цикл
Если Ит.Корсчет=СчетПоКоду("41") Тогда
ДОБ=Ит.КорДО();
КОБ=Ит.КорКО();
Бух41=ДОБ-КОБ;
ИначеЕсли Ит.Корсчет=СчетПоКоду("ИН") Тогда
ДОБ=Ит.КорДО();
КОБ=Ит.КорКО();
БухИН=ДОБ-КОБ;
ИначеЕсли Ит.Корсчет=СчетПоКоду("ТЗ") Тогда
ДОБ=Ит.КорДО();
КОБ=Ит.КорКО();
БухТЗ=ДОБ-КОБ;
ИначеЕсли Ит.Корсчет<>СчетПоКоду("62") Тогда
//Сообщить(Ит.Корсчет);
ДОБ=Ит.КорДО();
КОБ=Ит.КорКО();
БухПР=БухПР+(ДОБ-КОБ);
КонецЕсли;
КонецЦикла;
// Заполнение полей "Итого"
Таб.ВывестиСекцию("Итого");
// Вывод заполненной формы
Таб.ТолькоПросмотр(1);
Таб.Показать("Сформировать", """");"
//Ит.Рассчитать(ВыбНачПериода,ВыбКонПериода,"46;ИН",0);
Ит.ВыполнитьЗапрос(ВыбНачПериода,ВыбКонПериода,"46",,,3);
//Создание объекта типа Запрос
вв=Перечисление.ПризнакРасхода.Продажа;
вв1=перечисление.Признакприхода.ВозвратОтПокупателя;
Запрос = СоздатьОбъект("Запрос");
ТекстЗапроса =
"//{{ЗАПРОС(Сформировать)
|Период с ВыбНачПериода по ВыбКонПериода;
|Обрабатывать НеПомеченныеНаУдаление;
|ТекущийДокумент = Регистр.Партий.ТекущийДокумент;
|Клиент = Регистр.Партий.ТекущийДокумент.РНС.Контрагент, Регистр.Партий.ТекущийДокумент.ПНС.Контрагент;
|Себестоимость = Регистр.Партий.Себестоимость;
|ДопСтоимость = Регистр.Партий.ДопСтоимость;
|Оборот = Регистр.Партий.Оборот;
|ДопЗатраты = Регистр.Партий.ДопЗатраты;
|ИН = Регистр.Партий.ИН;
|Склад = Регистр.Партий.Склад;
|Филиал = Регистр.Партий.ТекущийДокумент.ДокОснование.Филиал;
//|Филиал = Регистр.Партий.ТекущийДокумент.РНС.ДокОснование.Филиал;
|КодОперации = Регистр.Партий.ТекущийДокумент.РНС.ПризнакРасхода;
|КодОперации1 = Регистр.Партий.ТекущийДокумент.ПНС.ПризнакПрихода;
|Манагер = Регистр.Партий.ТекущийДокумент.ДокОснование.Исполнитель;
//|Манагер = Регистр.Партий.ТекущийДокумент.РНС.ДокОснование.Исполнитель;
|Функция СебестоимостьРасход = Расход(Себестоимость);
|Функция ДопСтоимостьРасход = Расход(ДопСтоимость);
|Функция СебестоимостьПриход = Приход(Себестоимость);
|Функция ДопСтоимостьПриход = Приход(ДопСтоимость);
|Функция ОборотСумма = Сумма(Оборот);
|Функция ДопЗатратыСумма = Сумма(ДопЗатраты);
|Функция ИНСумма = Сумма(ИН);
|Группировка Филиал;
|Группировка Манагер без групп;
//|Группировка КодОперации;
|Условие((КодОперации=вв)или(КодОперации1=вв1));
//|Условие(ТекущийДокумент.Вид()=""""ПНС"""");
|"//}}ЗАПРОС
;
Если Кл=1 ТОгда
ТекстЗапроса=ТекстЗапроса+"
|Группировка Клиент без групп;";
Иначеесли Нак=1 ТОгда
ТекстЗапроса=ТекстЗапроса+"
|Группировка ТекущийДокумент;";
КонецЕсли;
// Если ошибка в запросе, то выход из процедуры
Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда
Возврат;
КонецЕсли;
// Подготовка к заполнению выходных форм данными запроса
Таб = СоздатьОбъект("Таблица");
Таб.ИсходнаяТаблица("Сформировать");
// Заполнение полей "Заголовок"
Таб.ВывестиСекцию("Заголовок");
Состояние("Заполнение выходной таблицы...");
Таб.Опции(0, 0, Таб.ВысотаТаблицы(), 0);
Пока Запрос.Группировка(1) = 1 Цикл
Таб.ВывестиСекцию("Филиал");
Пока Запрос.Группировка(2) = 1 Цикл
// Заполнение полей Манагер
Таб.ВывестиСекцию("Манагер");
Если (НАК =1) ИЛИ (Кл=1) Тогда
Пока Запрос.Группировка(3) = 1 Цикл
Если Кл=1 ТОгда
//Сообщить(Запрос.Клиент.ПолноеНаименование);
Таб.ВывестиСекцию("Клиент");
Иначеесли Нак=1 ТОгда
Таб.ВывестиСекцию("ТекущийДокумент");
КонецЕсли;
КонецЦикла;
КонецЕсли;
КонецЦикла;
КонецЦикла;
//ДОБ=Ит.ДО(СчетПоКоду("46"),,,);
//КОБ=Ит.КО(СчетПоКоду("46"),,,);
ДОБ=Ит.ДО();
КОБ=Ит.КО();
БухПрибыль=КОБ-ДОБ;
БухОборот=КОБ;
Ит.ВыбратьКорСчета();
Пока Ит.ПолучитьКорСчет() = 1 Цикл
Если Ит.Корсчет=СчетПоКоду("41") Тогда
ДОБ=Ит.КорДО();
КОБ=Ит.КорКО();
Бух41=ДОБ-КОБ;
ИначеЕсли Ит.Корсчет=СчетПоКоду("ИН") Тогда
ДОБ=Ит.КорДО();
КОБ=Ит.КорКО();
БухИН=ДОБ-КОБ;
ИначеЕсли Ит.Корсчет=СчетПоКоду("ТЗ") Тогда
ДОБ=Ит.КорДО();
КОБ=Ит.КорКО();
БухТЗ=ДОБ-КОБ;
ИначеЕсли Ит.Корсчет<>СчетПоКоду("62") Тогда
//Сообщить(Ит.Корсчет);
ДОБ=Ит.КорДО();
КОБ=Ит.КорКО();
БухПР=БухПР+(ДОБ-КОБ);
КонецЕсли;
КонецЦикла;
// Заполнение полей "Итого"
Таб.ВывестиСекцию("Итого");
// Вывод заполненной формы
Таб.ТолькоПросмотр(1);
Таб.Показать("Сформировать", """");"
Как выставить флажок по умолчанию во всех документах "Отразить в упр. учете"?УПП 1.2.30 Не идут основные часы в начислении зп с табелем.
Читают тему
(гостей: 2)