Имя: Пароль:
1C
1C 7.7
v7: Расшифровка в отчете
0 anagk
 
09.10.12
11:47
Не получаеться попасть в документ из отчета (по двойному клику). Многое пробую, но пока получаеться просто открыть первый документ, а вот именно нужный документ не получаеться...
   Док = СоздатьОбъект("Документ.Перемещение");
   Док.ВыбратьДокументы(НачДата,КонДата);
   Пока Док.ПолучитьДокумент()=1 Цикл
       Докум = Док.ТекущийДокумент();
   КонецЦикла;


   //теперь остатки
   Ит = СоздатьОбъект("БухгалтерскиеИтоги");
   Ит.ИспользоватьРазделительУчета(Фирма);    
   Если ПустоеЗначение(ВыбТМЦ) = 1 Тогда
       Ит.ИспользоватьСубконто(ВидыСубконто.ТМЦ,, 1);
   Иначе
       Ит.ИспользоватьСубконто(ВидыСубконто.ТМЦ, ВыбТМЦ, 2);
   КонецЕсли;
   Если фДни = 1 Тогда
       Ит.ВыполнитьЗапрос(НачДата,КонДата,Сч,,,1,"День","К");
   Иначе
       Ит.ВыполнитьЗапрос(НачДата,КонДата,Сч,,,1,,"К");    
   КонецЕсли;
   Ит.ВыбратьСубконто();
   Пока Ит.ПолучитьСубконто() = 1 Цикл
       
       ГП = Ит.Субконто();
       ОстНач = Ит.СНД("К");
       ОстКон = Ит.СКД("К");
   КонецЦикла;
......
1 Drac0
 
09.10.12
11:52
А где выводится строка отчета и что стоит в расшифровке?
2 Wobland
 
09.10.12
11:54
(0) держи нас в курсе
3 viktor_vv
 
09.10.12
11:54
А в чеи тайный смысл сего кода ?

   Док = СоздатьОбъект("Документ.Перемещение");
   Док.ВыбратьДокументы(НачДата,КонДата);
   Пока Док.ПолучитьДокумент()=1 Цикл
       Докум = Док.ТекущийДокумент();
   КонецЦикла;

Я так подозреваю ято Докум и стоит в расшифровке ячейки ?
4 anagk
 
09.10.12
11:55
строка в цикле (забыл дописать), а в расшифровке пробовал много сейчас Док. ТекущийДокумент()
5 anagk
 
09.10.12
11:56
да  - Докум - это один из вариантов получить ссылку на документ
6 Drac0
 
09.10.12
11:57
(4)Где именно в цикле.
7 anagk
 
09.10.12
11:57
Пока Ит.ПолучитьСубконто() = 1 Цикл
       
       ГП = Ит.Субконто();
       ОстНач = Ит.СНД("К");
       ОстКон = Ит.СКД("К");
Таб.ВывестиСекцию("Секция_5|Секция_1");
   КонецЦикла;
8 viktor_vv
 
09.10.12
11:58
(7) Ну а Докум тут каким боком ?
9 Рэйв
 
09.10.12
11:58
(7)и чему же у тебя равно Док.ТекущийДокумент() при выводе строки отчета?
10 anagk
 
09.10.12
12:01
может показать весь код выборки? (там чуток позамороченей будет). Но сейчас у меня вопрос только "Как из бухгалтерских итогов вытянуть Документ". Так как пробовал через Ит.Операция.ТекущийДокумент() - то тоже ничего.

Докум - это один из вариантов. Сейчас  идет просто..

Док = СоздатьОбъект("Документ.Перемещение");
   Док.ВыбратьДокументы(НачДата,КонДата);
   Пока Док.ПолучитьДокумент()=1 Цикл
       Док.ТекущийДокумент();
   КонецЦикла;
11 viktor_vv
 
09.10.12
12:03
(10)    Ит.ВыполнитьЗапрос(НачДата,КонДата,Сч,,,1,"Операция","К");

Ит.ВыбратьПериоды();
Пока Ит.ПолучитьПериод() = 1 Цикл
// Тут точно не помню обращение
Докум = Ит.Операция.Документ ;
КонецЦикла ;
12 viktor_vv
 
09.10.12
12:03
Это можешь внутрь цикла по субконто вставить.
13 Рэйв
 
09.10.12
12:04
(10)Делаешь в запросе Периодичность = "Операция", а потом в цикле перебора субконто:
Отльку у ручных операций он пустой. Они сами себе документ, проверять надо

Ит.ВыбратьПериоды();
Пока Ит.получитьПериод()=1 Цикл
  Док=Ит.Операция.Документ;
КонецЦикла;
14 viktor_vv
 
09.10.12
12:07
(12)+ Только не сам запрос, а только выборку.
15 anagk
 
09.10.12
12:16
Пробовал я и так, но при двойном клике вообще ничего не происходит. Вот весь код моей обработки

Перем Сч, Ит, т, Док;

//*******************************************
Процедура ЗаполнитьТ()
   т.НоваяСтрока();
   т.ГП = Ит.Субконто();
   Если фДни = 1 Тогда
       т.Дата = Ит.НачДата;
   КонецЕсли;
   сумД = Ит.КорДО("К");
   сумК = Ит.КорКО("К");
   Если сумД <> 0 Тогда
       //был приход
       Если Ит.КорСчет = СчетПоКоду("25") Тогда
           т.Вып = сумД;
       Иначе
           т.Перев = сумД;
       КонецЕсли;
   КонецЕсли;            
   Если сумК <> 0 Тогда
       //расход
       Если Ит.КорСчет = СчетПоКоду("90") Тогда
           т.Реал = сумК;
       Иначе
           т.Проч = сумК;
       КонецЕсли;
   КонецЕсли;
КонецПроцедуры    // ЗаполнитьТ

Процедура Сформировать()
   т = СоздатьОбъект("ТаблицаЗначений");
   т.НоваяКолонка("ГП","Справочник.ТМЦ");
   т.НоваяКолонка("ОстНач", "Число", 12, 3);
   т.НоваяКолонка("Вып", "Число", 12, 3);
   т.НоваяКолонка("Перев", "Число", 12, 3);
   т.НоваяКолонка("Реал", "Число", 12, 3);
   т.НоваяКолонка("Проч", "Число", 12, 3);
   т.НоваяКолонка("ОстКон", "Число", 12, 3);
   Если фДни = 1 Тогда
       т.НоваяКолонка("Дата","Дата");
   КонецЕсли;
   Ит = СоздатьОбъект("БухгалтерскиеИтоги");
   Ит.ИспользоватьРазделительУчета(Фирма);
   Если ПустоеЗначение(ВыбТМЦ) = 1 Тогда
       Ит.ИспользоватьСубконто(ВидыСубконто.ТМЦ,, 1);
   Иначе
       Ит.ИспользоватьСубконто(ВидыСубконто.ТМЦ, ВыбТМЦ, 2);
   КонецЕсли;                        
   Если фДни = 1 Тогда
       Ит.ВыполнитьЗапрос(НачДата,КонДата,Сч,,,2,"День","К");
   Иначе
       Ит.ВыполнитьЗапрос(НачДата,КонДата,Сч,,,2,,"К");    
   КонецЕсли;
   Ит.ВыбратьСубконто();
   Пока Ит.ПолучитьСубконто() = 1 Цикл
       Если фДни = 1 Тогда
           Ит.ВыбратьПериоды();
           Пока Ит.ПолучитьПериод() = 1 Цикл
               ИТ.ВыбратьКорсчета();
               Пока Ит.ПолучитьКорСчет() = 1 Цикл  
                   ЗаполнитьТ();    
               КонецЦикла;    
           КонецЦикла;
       Иначе
           ИТ.ВыбратьКорсчета();
           Пока Ит.ПолучитьКорСчет() = 1 Цикл  
               ЗаполнитьТ();    
           КонецЦикла;
       КонецЕсли;
   КонецЦикла;
   
   //теперь остатки
   Ит = СоздатьОбъект("БухгалтерскиеИтоги");
   Ит.ИспользоватьРазделительУчета(Фирма);    
   Если ПустоеЗначение(ВыбТМЦ) = 1 Тогда
       Ит.ИспользоватьСубконто(ВидыСубконто.ТМЦ,, 1);
   Иначе
       Ит.ИспользоватьСубконто(ВидыСубконто.ТМЦ, ВыбТМЦ, 2);
   КонецЕсли;
   Если фДни = 1 Тогда
       Ит.ВыполнитьЗапрос(НачДата,КонДата,Сч,,,1,"День","К");
   Иначе
       Ит.ВыполнитьЗапрос(НачДата,КонДата,Сч,,,1,,"К");    
   КонецЕсли;
   Ит.ВыбратьСубконто();
   Пока Ит.ПолучитьСубконто() = 1 Цикл
       т.НоваяСтрока();
       т.ГП = Ит.Субконто();
       т.ОстНач = Ит.СНД("К");
       т.ОстКон = Ит.СКД("К");
   КонецЦикла;
   
   Ит = 0;
   Если фДни = 1 Тогда
       тд = СоздатьОбъект("ТаблицаЗначений");
       т.Выгрузить(тд);
       тд.Свернуть("1,8","2,3,4,5,6,7");
       тд.Сортировать("ГП,Дата");
   КонецЕсли;
   
   т.Свернуть("1","2,3,4,5,6,7");
   т.Сортировать("ГП");
   таб = СоздатьОбъект("Таблица");
   Таб.ВывестиСекцию("Секция_2|Секция_1");
   т.ВыбратьСтроки();
   Пока т.ПолучитьСтроку() = 1 Цикл
       Таб.ВывестиСекцию("Секция_3|Секция_1");
       Если фДни = 1 Тогда
           тд.ВыбратьСтроки();
           Пока тд.ПолучитьСтроку() = 1 Цикл
               Если (т.ГП <> тд.ГП) или (тд.Дата = дата(0)) Тогда
                   Продолжить;
               КонецЕсли;
               //Таб.ВывестиСекцию("Секция_5|Секция_1");
           КонецЦикла;
       КонецЕсли;
   КонецЦикла;                    
   Таб.ВывестиСекцию("Секция_4|Секция_1");  
   Таб.ПараметрыСтраницы(1,,,10,0,10,0,0,0,1,,);
   Таб.Защита(Константа.ФлагЗащитыТаблиц);
   Таб.ТолькоПросмотр(1);
   Таб.Опции(0,0,5,1);
   Таб.Показать("ПЕЧАТЬ:ГП");
КонецПроцедуры

// ======================================
Процедура ИзмФирма()
   Если ПустоеЗначение(Фирма) = 1 Тогда
       Возврат;
   КонецЕсли;
КонецПроцедуры

//===========================
Процедура ПриОткрытии()
   Фирма = Константа.БазФирма;
   Если РабочаяДата() = НачМесяца(РабочаяДата()) Тогда
       КонДата = НачМесяца(РабочаяДата()) - 1;
       НачДата = НачМесяца(КонДата);
   Иначе
       НачДата = НачМесяца(РабочаяДата());
       КонДата = РабочаяДата() - 1;    
   КонецЕсли;
   
   Сч = СчетПоКоду("26");
КонецПроцедуры
16 anagk
 
09.10.12
12:20
когда поставили чекер (по дням) видно колличество, что было перемещено. и здесь нужно зайти в документ который вызвал это ..
17 Salimbek
 
09.10.12
12:22
смотри в сторону: ОбработкаЯчейкиТаблицы
18 Drac0
 
09.10.12
12:46
(16) За день может быть несколько документов, какой из них выбирать при обращении? Поэтому нужен период Операция.
19 anagk
 
09.10.12
12:49
ну я точно знаю, что он один этот Документ.
20 anagk
 
09.10.12
12:50
но почему-то с периодом Операция - действий НИКАКИХ при клике
21 anagk
 
09.10.12
15:11
еще не множко... уж помогите... я уже в отчет впихнул документ, осталось его расскрыть... (Расшифровка)
22 anagk
 
09.10.12
15:37
УРА!!!!!!!!!!! СПАСИБО!!!
23 anagk
 
09.10.12
15:38
сделал даже больше чем хотел. ВСЕМ СПАСИБО!!!!