Имя: Пароль:
1C
1С v8
УПП 8.2 Несколько вопросов при переделывании документа
0 demous
 
13.04.12
10:13
Заранее всем благодарен за помощь, суть следующая, есть документ который формирует список по заявкам на расход и создает на заявки платежки
, его надо перегнать под немного другой вариант... в ней задано формирование в обязательном порядке по организации и по подразделению... помогите переделать эти моменты так, что бы если организация не выбрана или подразделение, то он формировал полный список документов

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

   Запрос.УстановитьПараметр("Дат",НачалоДня(Дата));
   Запрос.УстановитьПараметр("Организация",Организация);
   Запрос.УстановитьПараметр("Валюта",ВалютаДокумента);
   Запрос.УстановитьПараметр("Подразделение",Подразделение);
   
   ТЗ=Запрос.Выполнить().Выгрузить();
   
   РасчетныеСчета.Загрузить(ТЗ);
   Для Каждого Стр Из РасчетныеСчета Цикл
       Если Стр.Счет=Организация.ОсновнойБанковскийСчет Тогда
           Стр.СчетПоУмолчанию=Истина;
       КонецЕсли;
   КонецЦикла;    

   СписокСостояний = Новый СписокЗначений;
   СписокСостояний.Добавить(Перечисления.СостоянияОбъектов.Утвержден);
   СписокСостояний.Добавить(Перечисления.СостоянияОбъектов.Подготовлен);
   Запрос.УстановитьПараметр("Дат",НачалоНедели(Дата));
   Построитель.Параметры.Вставить("Дат",КонецНедели(Дата));
   Построитель.Параметры.Вставить("Организация",Организация);
1 demous
 
13.04.12
10:25
апну
2 pumbaEO
 
13.04.12
10:31
Построитель отчета используй или СКД, для задания условий.
3 demous
 
13.04.12
10:34
(2)это документ, это не отчет... тут разве можно их использовать?
4 demous
 
13.04.12
10:40
(2)построитель нашел.. .а СКД где там можно использовать?
5 bvg
 
13.04.12
10:40
примерно вот так:
ВЫБРАТЬ
   ДенежныеСредстваОстатки.БанковскийСчетКасса КАК Счет,
   СУММА(ДенежныеСредстваОстатки.СуммаОстаток) КАК Остаток
ИЗ
   РегистрНакопления.ДенежныеСредства.Остатки(&Дат, БанковскийСчетКасса.ВалютаДенежныхСредств = &Валюта) КАК ДенежныеСредстваОстатки
{ГДЕ
   ДенежныеСредстваОстатки.Организация.*}

СГРУППИРОВАТЬ ПО
   ДенежныеСредстваОстатки.БанковскийСчетКасса
6 demous
 
13.04.12
10:47
(5) спс, сейчас попробую
7 demous
 
13.04.12
10:54
(5) по прежнему формирует только если выбрана организация
8 pumbaEO
 
13.04.12
10:58
Как - то так:
Процедура ИнициализироватьПостроительОтчета(ПостроительОтчета) Экспорт
   
   // -= ВРЕМЕННЫЙ КОД: УДАЛИТЬ ПОСЛЕ ОТЛАДКИ  =-
   // {
       Если Ложь Тогда
           ПостроительОтчета = Новый ПостроительОтчета;
       КонецЕсли;
   // }
   //
   
   
   ПостроительОтчета.Текст = "ВЫБРАТЬ РАЗРЕШЕННЫЕ
                             |    НалоговаяНакладная.Ссылка КАК НалоговаяНакладная,
                             |    НалоговаяНакладная.Представление КАК Представление,
                             |    НАЧАЛОПЕРИОДА(НалоговаяНакладная.Дата, МЕСЯЦ) КАК ПериодС,
                             |    КОНЕЦПЕРИОДА(НалоговаяНакладная.Дата, МЕСЯЦ) КАК ПериодПо,
                             |    НалоговаяНакладная.Организация,
                             |    НалоговаяНакладная.ПродажаНижеОбычнойЦены,
                             |    ЗНАЧЕНИЕ(Документ.НалоговаяНакладная.ПустаяСсылка) КАК ВидДокумента
                             |{ВЫБРАТЬ
                             |    НалоговаяНакладная.*,
                             |    Представление,
                             |    ПериодС,
                             |    ПериодПо,
                             |    Организация.*,
                             |    ПродажаНижеОбычнойЦены,
                             |    ВидДокумента}
                             |ИЗ
                             |    Документ.НалоговаяНакладная КАК НалоговаяНакладная
                             |ГДЕ
                             |    НалоговаяНакладная.Проведен
                             |    И &ЕстьОтборНН = ИСТИНА
                             |{ГДЕ
                             |    НалоговаяНакладная.Ссылка.*,
                             |    НалоговаяНакладная.Номер,
                             |    НалоговаяНакладная.Дата,
                             |    НалоговаяНакладная.ВидОперации.*,
                             |    НалоговаяНакладная.Комментарий,
                             |    НалоговаяНакладная.Организация.*,
                             |    НалоговаяНакладная.Контрагент.*,
                             |    НалоговаяНакладная.ДоговорКонтрагента.*,
                             |    НалоговаяНакладная.ТипЦен.*,
                             |    НалоговаяНакладная.ВалютаДокумента.*,
                             |    НалоговаяНакладная.Ответственный.*,
                             |    НалоговаяНакладная.ДокументОснование.*,
                             |    НалоговаяНакладная.ПодтверждаетсяГТД,
                             |    НалоговаяНакладная.НомерГТД,
                             |    НалоговаяНакладная.Сделка.*,
                             |    НалоговаяНакладная.ТипПричиныНевыдачиПокупателю,
                             |    НалоговаяНакладная.ВидДоговора,
                             |    НалоговаяНакладная.СпецРежимНалогообложения,
                             |    НалоговаяНакладная.УточняемыйПериод,
                             |    НалоговаяНакладная.УслугиНерезидентаДляНехозДеят,
                             |    НалоговаяНакладная.ПометкаУдаления,
                             |    НалоговаяНакладная.КтоВыписалНалоговуюНакладную.*,
                             |    НалоговаяНакладная.ПродажаНижеОбычнойЦены,
                             |    НалоговаяНакладная.ВключаетсяВУточняющийРасчет,
                             |    НалоговаяНакладная.ВключенаВЕдиныйРеестрНалоговыхНакладных,
                             |    НалоговаяНакладная.ТребуетВключенияВЕдиныйРеестрНалоговыхНакладных}
                             |
                             |СГРУППИРОВАТЬ ПО
                             |    НалоговаяНакладная.Ссылка,
                             |    НалоговаяНакладная.Представление,
                             |    НалоговаяНакладная.Организация,
                             |    НалоговаяНакладная.ПродажаНижеОбычнойЦены,
                             |    НАЧАЛОПЕРИОДА(НалоговаяНакладная.Дата, МЕСЯЦ),
                             |    КОНЕЦПЕРИОДА(НалоговаяНакладная.Дата, МЕСЯЦ)
                             |
                             |ОБЪЕДИНИТЬ ВСЕ
                             |
                             |ВЫБРАТЬ
                             |    Приложение2КНалоговойНакладной.Ссылка,
                             |    Приложение2КНалоговойНакладной.Представление,
                             |    НАЧАЛОПЕРИОДА(Приложение2КНалоговойНакладной.Дата, МЕСЯЦ),
                             |    КОНЕЦПЕРИОДА(Приложение2КНалоговойНакладной.Дата, МЕСЯЦ),
                             |    Приложение2КНалоговойНакладной.Организация,
                             |    ЛОЖЬ,
                             |    ЗНАЧЕНИЕ(Документ.Приложение2КНалоговойНакладной.ПустаяСсылка)
                             |{ВЫБРАТЬ
                             |    НалоговаяНакладная.*,
                             |    ПериодС,
                             |    ПериодПо,
                             |    Организация.*,
                             |    ПродажаНижеОбычнойЦены}
                             |ИЗ
                             |    Документ.Приложение2КНалоговойНакладной КАК Приложение2КНалоговойНакладной
                             |ГДЕ
                             |    Приложение2КНалоговойНакладной.Проведен
                             |    И &ЕстьОтборПриложение2 = ИСТИНА
                             |{ГДЕ
                             |    Приложение2КНалоговойНакладной.Ссылка.*,
                             |    Приложение2КНалоговойНакладной.Номер,
                             |    Приложение2КНалоговойНакладной.ВидОперации.*,
                             |    Приложение2КНалоговойНакладной.Комментарий,
                             |    Приложение2КНалоговойНакладной.Организация.*,
                             |    Приложение2КНалоговойНакладной.Контрагент.*,
                             |    Приложение2КНалоговойНакладной.ДоговорКонтрагента.*,
                             |    Приложение2КНалоговойНакладной.ТипЦен.*,
                             |    Приложение2КНалоговойНакладной.ВалютаДокумента.*,
                             |    Приложение2КНалоговойНакладной.Ответственный.*,
                             |    Приложение2КНалоговойНакладной.НалоговаяНакладная.*,
                             |    Приложение2КНалоговойНакладной.ДокументОснование.*,
                             |    Приложение2КНалоговойНакладной.Сделка.*,
                             |    Приложение2КНалоговойНакладной.НалоговаяНакладная.ТипПричиныНевыдачиПокупателю КАК ТипПричиныНевыдачиПокупателю,
                             |    Приложение2КНалоговойНакладной.ВидДоговора,
                             |    Приложение2КНалоговойНакладной.СпецРежимНалогообложения,
                             |    Приложение2КНалоговойНакладной.УточняемыйПериод,
                             |    Приложение2КНалоговойНакладной.НалоговаяНакладная.УслугиНерезидентаДляНехозДеят КАК УслугиНерезидентаДляНехозДеят,
                             |    Приложение2КНалоговойНакладной.ПометкаУдаления,
                             |    Приложение2КНалоговойНакладной.КтоВыписалНалоговуюНакладную.*,
                             |    Приложение2КНалоговойНакладной.ВключаетсяВУточняющийРасчет,
                             |    Приложение2КНалоговойНакладной.ВключенаВЕдиныйРеестрНалоговыхНакладных,
                             |    Приложение2КНалоговойНакладной.ТребуетВключенияВЕдиныйРеестрНалоговыхНакладных,
                             |    Приложение2КНалоговойНакладной.ОснованиеКорректировки,
                             |    Приложение2КНалоговойНакладной.УточняемыйПериод,
                             |    Приложение2КНалоговойНакладной.СпецРежимНалогообложения}
                             |
                             |СГРУППИРОВАТЬ ПО
                             |    Приложение2КНалоговойНакладной.Ссылка,
                             |    Приложение2КНалоговойНакладной.Представление,
                             |    Приложение2КНалоговойНакладной.Организация,
                             |    НАЧАЛОПЕРИОДА(Приложение2КНалоговойНакладной.Дата, МЕСЯЦ),
                             |    КОНЕЦПЕРИОДА(Приложение2КНалоговойНакладной.Дата, МЕСЯЦ)";
                             
       ПостроительОтчета.ЗаполнитьНастройки();
               
       // { Добавим отборы по умолчанию.
       //
       
       ПостроительОтчета.Отбор.Добавить("Дата");
       ПостроительОтчета.Отбор.Дата.Использование = Истина;
       ПостроительОтчета.Отбор.Дата.ВидСравнения = ВидСравнения.ИнтервалВключаяГраницы;
       ПостроительОтчета.Отбор.Дата.ЗначениеС = НачалоДня(ТекущаяДата());
       ПостроительОтчета.Отбор.Дата.ЗначениеПо = КонецДня(ТекущаяДата());
       
       ПостроительОтчета.Отбор.Добавить("Организация");
       
       ПостроительОтчета.Отбор.Добавить("ТребуетВключенияВЕдиныйРеестрНалоговыхНакладных",, "Требует включения в ЕРНН");
       ПостроительОтчета.Отбор.ТребуетВключенияВЕдиныйРеестрНалоговыхНакладных.Использование = Истина;
       ПостроительОтчета.Отбор.ТребуетВключенияВЕдиныйРеестрНалоговыхНакладных.Значение = Истина;
       ПостроительОтчета.Отбор.ТребуетВключенияВЕдиныйРеестрНалоговыхНакладных.ВидСравнения = ВидСравнения.Равно;
       
       ПостроительОтчета.Отбор.Добавить("ВключенаВЕдиныйРеестрНалоговыхНакладных",, "Включена в ЕРНН");
       ПостроительОтчета.Отбор.ВключенаВЕдиныйРеестрНалоговыхНакладных.Использование = Истина;
       ПостроительОтчета.Отбор.ВключенаВЕдиныйРеестрНалоговыхНакладных.Значение = Ложь;
       ПостроительОтчета.Отбор.ВключенаВЕдиныйРеестрНалоговыхНакладных.ВидСравнения = ВидСравнения.Равно;
   
       // }
       
КонецПроцедуры

Если организация пустая тогда Использование ставишь Ложь...

ИнициализироватьПостроительОтчета(Построитель);
Запрос = Построитель.ПолучитьЗапрос();
Результат = Запрос.Выполнить();
9 demous
 
13.04.12
11:03
(8) но как я правильно понял, получается форма отчета... тут моя ошибка... сорри, не дописал в шапке, что отчет по такой системе как требовалась я подготовил... а у начальства возникла потребность видеть сегодняшние данные по этому отчету, хоть через 5 лет, при этом чтоб они хранились в программе, то есть сохранение внешним доком типа htm или mxl их не устраивает... и единственный выход который я нашел, это сделать такой же документ как отчет...
10 pumbaEO
 
13.04.12
11:06
что за бред... Задачу в студию, можно не ТЗ а функциональное требование.
11 demous
 
13.04.12
11:12
(10) минутку)
12 demous
 
13.04.12
11:19
(10) http://rghost.ru/37556404
вот скрин отчета...
сам отчет не сложный, но суть его в том, что начальству требуется теперь то, что я описал в (9)
13 demous
 
13.04.12
11:33
(5) формирует без организации и подразделения... но при их выборе перестал на них реагировать,и формирует весь список
14 demous
 
13.04.12
11:38
вот еще в дополнение шапки



Процедура ПриОткрытии()
   Построитель.Текст =
               "ВЫБРАТЬ
               |    ЗаявкиНаРасходованиеСредствОстатки.Контрагент КАК Контрагент,
               |    ЗаявкиНаРасходованиеСредствОстатки.ЗаявкаНаРасходование КАК Заявка,
               |    СУММА(ЗаявкиНаРасходованиеСредствОстатки.СуммаВзаиморасчетовОстаток * ЕСТЬNULL(КурсыВалютСрезПоследних.Курс, 1)) КАК СуммаВзаиморасчетов,
               |    ЗаявкиНаРасходованиеСредствОстатки.СтатьяДвиженияДенежныхСредств КАК СтатьяДвиженияДенежныхСредств,
               |    ЗаявкиНаРасходованиеСредствОстатки.ДоговорКонтрагента.ВалютаВзаиморасчетов КАК ВалютаВзаиморасчетов,
               |    ЗаявкиНаРасходованиеСредствОстатки.ЗаявкаНаРасходование.ДатаРасхода КАК СрокОплаты,
               |    ЗаявкиНаРасходованиеСредствОстатки.ЗаявкаНаРасходование.Ответственный КАК Ответственный,
               |    ЗаявкиНаРасходованиеСредствОстатки.ЗаявкаНаРасходование.ЦФО КАК Подразделение,
               |    ЗаявкиНаРасходованиеСредствОстатки.ЗаявкаНаРасходование.Д_Приоритет КАК Приоритет,
               |    СУММА(ЗаявкиНаРасходованиеСредствОстаткиИОбороты.СуммаВзаиморасчетовРасход) КАК Расход,
               |    СУММА(ЗаявкиНаРасходованиеСредствОстаткиИОбороты.СуммаВзаиморасчетовНачальныйОстаток) КАК СуммаДокумента,
               |    СУММА(ЗаявкиНаРасходованиеСредствОстаткиИОбороты.СуммаВзаиморасчетовКонечныйОстаток) КАК Остаток
               |ИЗ
               |    РегистрНакопления.ЗаявкиНаРасходованиеСредств.Остатки(
               |            &Дат,
               |            Организация = &Организация
               |                И ЗаявкаНаРасходование.ЦФО = &Подразделение) КАК ЗаявкиНаРасходованиеСредствОстатки
               |        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КурсыВалют.СрезПоследних(&Дат, ) КАК КурсыВалютСрезПоследних
               |        ПО ЗаявкиНаРасходованиеСредствОстатки.ДоговорКонтрагента.ВалютаВзаиморасчетов = КурсыВалютСрезПоследних.Валюта,
               |    РегистрНакопления.ЗаявкиНаРасходованиеСредств.ОстаткиИОбороты(, , , , ) КАК ЗаявкиНаРасходованиеСредствОстаткиИОбороты
               |ГДЕ
               |    ЗаявкиНаРасходованиеСредствОстатки.ЗаявкаНаРасходование.Состояние В(&Состояния)
               |    И ЗаявкиНаРасходованиеСредствОстатки.ЗаявкаНаРасходование.ВалютаДокумента = &ВалютаДокумента
               |{ГДЕ
               |    ЗаявкиНаРасходованиеСредствОстатки.Контрагент.*,
               |    ЗаявкиНаРасходованиеСредствОстатки.ЗаявкаНаРасходование.ЦФО.* КАК Подразделение,
               |    ЗаявкиНаРасходованиеСредствОстатки.ЗаявкаНаРасходование.* КАК Заявка}
               |
               |СГРУППИРОВАТЬ ПО
               |    ЗаявкиНаРасходованиеСредствОстатки.Контрагент,
               |    ЗаявкиНаРасходованиеСредствОстатки.ЗаявкаНаРасходование,
               |    ЗаявкиНаРасходованиеСредствОстатки.СтатьяДвиженияДенежныхСредств,
               |    ЗаявкиНаРасходованиеСредствОстатки.ДоговорКонтрагента.ВалютаВзаиморасчетов,
               |    ЗаявкиНаРасходованиеСредствОстатки.ЗаявкаНаРасходование.ДатаРасхода,
               |    ЗаявкиНаРасходованиеСредствОстатки.ЗаявкаНаРасходование.Ответственный,
               |    ЗаявкиНаРасходованиеСредствОстатки.ЗаявкаНаРасходование.ЦФО,
               |    ЗаявкиНаРасходованиеСредствОстатки.ЗаявкаНаРасходование.Д_Приоритет
               |
               |УПОРЯДОЧИТЬ ПО
               |    СтатьяДвиженияДенежныхСредств,
               |    Контрагент,
               |    Заявка
               |АВТОУПОРЯДОЧИВАНИЕ";
   Построитель.ЗаполнитьНастройки();
   //ПересчитатьОстаткиНаКонец();
   //НомерПлатежки = СледующийНомер(ПоследнийНомерПлатежки());
   Если ЭтоНовый() Тогда
       ВалютаДокумента = мВалютаУпрУчета;
   КонецЕсли;
КонецПроцедуры
15 demous
 
13.04.12
11:42
в таком варианте, формирует только если выбранно подразделение и организация
               |ИЗ
               |    РегистрНакопления.ЗаявкиНаРасходованиеСредств.Остатки(
               |            &Дат,
               |            Организация = &Организация
               |                И ЗаявкаНаРасходование.ЦФО = &Подразделение) КАК ЗаявкиНаРасходованиеСредствОстатки
 
если это убираю, то заполняет весь список по заявкам (13)
16 demous
 
13.04.12
11:54
апну
17 pumbaEO
 
13.04.12
11:58
тебе ничего не поможет, используй пример из 8 для установки отборов и получения запроса с правильными отборами, заполняй табличную часть документа, отчет строй по движениям документа.
18 demous
 
13.04.12
12:27
(17) с документом понятно... буду разбираться... вопрос такой еще
Можно ли как то сделать сохранение отчета в программе, что бы можно было его открыть через какой-то промежуток времени, с актуальными на момент сохранения данными?
19 Argon
 
13.04.12
12:33
Можно попробовать запихнуть его в регистр настроек пользователя
20 Argon
 
13.04.12
12:34
Ну или добавить отдельный регистр сведений с хранилищами значений
21 demous
 
13.04.12
12:39
Отчет в регистр? можно чуть более толкования добавить?  просто пока я не представляю этого момента(((
22 bvg
 
13.04.12
12:47
если отчет выводит данные сейчас , то и через 5 лет он будет выводить эти же данные, зачем еще куда то сохранять?
23 demous
 
13.04.12
13:31
(22) не устраивает то, что его надо будет формировать... вот ........... надо так, что бы он сохранялся как документ, вот ты хоть убей
24 Argon
 
13.04.12
13:31
Не отчет в регистр, а ДАННЫЕ полученные им. Насколько я понял задача стоит в том чтобы вывести данные, не на основании документов в ИБ (которые могли просто поменяться), а именно те данные которые были на момент формирование отчета
25 Argon
 
13.04.12
13:33
Хотя как более простой вариант просто сохранять в файлы, которые потом можно открывать (но тогда данные фактически будут не в базе)
26 demous
 
13.04.12
13:43
в (24) правильно понял задачу... то есть менялись данные или не менялись, они должны показываться именно на тот момент когда был сформирован отчет... а формироваться он будет в понедельник и в пятницу с подведением итогов...

и (25) сохранение в отдельный файл ну ни как не устраивает руководство
27 Argon
 
13.04.12
15:29
Ну тогда либо используй какой нибудь стандартный регистр  - типа "настройки пользователей", либо создай свой собственный, в отчеты добавь возможность сохранить результаты. При сохранении создавай запись в регистре за заталкивай туда результаты отчета (рекомендую использовать тип данных "хранилище значений")