Имя: Пароль:
1C
1C 7.7
v7: проблема с бух.запросом
, , ,
0 alex_reglament
 
15.12.11
10:50
Привет всем
Задача следующая  создать отчет по дебиторской задолженности
В отчете должны быть две печатных формы в первой из них  должны быть строки со свернутыми по «Контрагенту» значениями, а вторая должна  разворачивать по документам
Проблем с первой не возникло,  а вот со второй проблемы есть
Данные берутся со счетаПоКолу(дц)
ДЦ = Субуонто 1 = Контрагенты, Субконто2 = Накладная  счетДЦ является Количественным и суммовым  в количество падает отгруженное НДС  а сумму Отгруженная СуммаСНДС
Документом оплаты является Документ. Вид() = «Закрытие Накладных» проводка у него идет на счет ДЦ по кредиту
А в проводке накладной на счет ДЦ по дебету
Из этого понятно, что для первой таблице, у которой колонки следующих наименований
Контрагент , УНН, Р/С, Сумма Долга, СуммаДолгаПросроченная
Сумма Долга = БИ.СКД  а  СуммаДолгаПросроченная по условию если она просрочена тогда тоже СКД
Так вот
Проблема возникла с таблицей, №2 у которой колонки
Накладная , Дата, Сумма Отгрузки, Сумма Оплаты
Сумма Отгрузки = ДЦ.ДО , а сумма Оплаты = ДЦ,КО
ДО по дц я то получить могу это у меня получается а вот КО с сумма для того же документа не получается

Вот код
Перем Контрагент;
Процедура ПриОткрытии()
   Дата_ = РабочаяДата();
   Форма.КнопкаПоУмолчанию("Сформировать");
КонецПроцедуры  
//*******************************************
Процедура Сформировать()
   ТЗ = СоздатьОбъект("ТаблицаЗначений");
   ТЗ.НоваяКолонка("Контрагент");
   ТЗ.НоваяКолонка("УНН");
   ТЗ.НоваяКолонка("РС");
   ТЗ.НоваяКолонка("СуммаОбщая");
   ТЗ.НоваяКолонка("СуммаПросроченная");
   спрБанка = СоздатьОбъект("Справочник.БанковскиеСчета");
   СпрДоговора = СоздатьОбъект("Справочник.Договоры");
   //*******************************************
   Таб = СоздатьОбъект("Таблица");
   Таб.ВывестиСекцию("Шапка");
   Ит_1 = СоздатьОбъект("БухгалтерскиеИтоги");
   Ит_1.ИспользоватьСубконто(ВидыСубконто.Контрагенты);
   Ит_1.ИспользоватьСубконто(ВидыСубконто.Накладная);
   Ит_1.ВыполнитьЗапрос(НачГода(Дата_),Дата_,"ДЦ",,,,"Операция");
   Ит_1.ВыбратьСубконто(1);
   Пока Ит_1.ПолучитьСубконто(1) = 1 Цикл
       Ит_1.ВыбратьСубконто(2);
       Пока Ит_1.ПолучитьСубконто(2) = 1 Цикл
           СуммаОплат = "";
           Если Ит_1.СКД("С") <> 0 Тогда
               Если Ит_1.Субконто(2).Вид() = "РасходТовара" Тогда
                   спрБанка.ИспользоватьВладельца(Ит_1.Субконто(1).ТекущийЭлемент());
                   ТЗ.НоваяСтрока();
                   ТЗ.Контрагент            = Ит_1.Субконто(1);
                   ТЗ.УНН                   = Ит_1.Субконто(1).УНН;
                   спрБанка.ВыбратьЭлементы();
                   Пока спрБанка.ПолучитьЭлемент() = 1 Цикл
                       Если Число(спрБанка.Код) = 1 Тогда
                           ТЗ.РС          = спрБанка.Наименование + ": р/с №" + СокрЛП(спрБанка.НомерСчета);
                       КонецЕсли;
                   КонецЦикла;
                   Ит_1.ВыбратьПериоды();
                   Пока Ит_1.ПолучитьПериод() > 0 Цикл
                       Если Ит_1.Операция.Документ.ТекущийДокумент().Вид() = "ЗакрытиеНакладных" Тогда
                           Если Ит_1.Операция.Документ.ПриходныйДокумент = Ит_1.Субконто(2).ТекущийДокумент() Тогда
                               Сообщить(Ит_1.Операция.Сумма+" - "+ "СуммаОтгрузки="+" - " +Ит_1.ДО("С"));
                           КонецЕсли;
                       КонецЕсли;
                   КонецЦикла;
                   ТЗ.СуммаОбщая            = Ит_1.СКД("С");
                   //********************************************************
                   СпрДоговора.ИспользоватьВладельца(Ит_1.Субконто(1).ТекущийЭлемент());
                   СпрДоговора.ВыбратьЭлементы();
                   Пока СпрДоговора.ПолучитьЭлемент() = 1 Цикл
                       Если СпрДоговора.Наименование = Ит_1.Субконто(2).Договор.Наименование Тогда
                           ДнейДляТреб         = СпрДоговора.ДнейОплаты;
                       КонецЕсли;
                   КонецЦикла;
                   ДатаДока = Ит_1.Субконто(2).ДатаДок;
                   ЧислоДняСПросрочкой  = ДатаДока + ДнейДляТреб;
                   Если ЧислоДняСПросрочкой < Дата_ Тогда    
                       ТЗ.СуммаПросроченная     =  = Ит_1.СКД("С");
                   КонецЕсли;
               КонецЕсли;
           КонецЕсли;
       КонецЦикла;
   КонецЦикла;
   ТЗ.Свернуть("Контрагент,УНН,РС","СуммаОбщая,СуммаПросроченная");
   ТЗ.ВыбратьСтроки();
   Пока ТЗ.ПолучитьСтроку() = 1 Цикл
       Контрагент        = ТЗ.Контрагент;
       УНП               = ТЗ.УНН;
       РачетныйСчет      = ТЗ.РС;
       СуммаОбщая        = ТЗ.СуммаОбщая;
       СуммаПросроченная = ТЗ.СуммаПросроченная;
       Таб.ВывестиСекцию("Строка");
   КонецЦикла;
   Таб.ПараметрыСтраницы(2, , , , , , , , , 1);
   Таб.Опции(0, 0, 6, 13, "дебиторская задолжность");
   Таб.ТолькоПросмотр(1);
   Таб.Показать("дебиторская задолжность");
КонецПроцедуры
//*******************************************//Расшифровка Док+Дата+СуммаОтгрузки+СуммаОплаты
Процедура ОбработкаЯчейкитаблицы(Контрагент)
   ФлагСтандОбраб = 0;
   Табл = СоздатьОбъект("Таблица");
   Табл.ИсходнаяТаблица("Расшифровка");
   Табл.ВывестиСекцию("Шапка");
   Би = СоздатьОбъект("БухгалтерскиеИтоги");
   Док_ = СоздатьОбъект("Документ");
   Би.ИспользоватьСубконто(ВидыСубконто.Контрагенты,Контрагент);
   Би.ИспользоватьСубконто(ВидыСубконто.Накладная);
   Би.ВыполнитьЗапрос(НачГода(Дата_),Дата_,"ДЦ",,,,"Операция");
   Би.ВыбратьСубконто(1);
   Пока Би.ПолучитьСубконто(1) = 1 Цикл
       Би.ВыбратьСубконто(2);
       Пока Би.ПолучитьСубконто(2) = 1 Цикл
           Если Би.СКД("С") <> 0 Тогда
               Сумма2 = "-";
               дОК = Би.Субконто(2);
               ДатаДока = Би.Субконто(2).ДатаДок;
               Сумма = Би.Субконто(2).Итог("Сумма") + Би.Субконто(2).Итог("СуммаНДС");
               Табл.ВывестиСекцию("Строка");
               Сумма = "-";
               Док_.ВыбратьДокументы(НачГода(Дата_),Дата_);
               Пока Док_.ПолучитьДокумент() = 1 Цикл
                   Если Док_.Вид() = "ЗакрытиеНакладных" Тогда
                       Док_.ВыбратьСтроки();
                       Пока Док_.ПолучитьСтроку() = 1 Цикл
                           Если Док_.ПриходныйДокумент = Би.Субконто(2).ТекущийДокумент() Тогда
                               Если Док_.Контрагент = Би.Субконто(1).ТекущийЭлемент() Тогда
                                   дОК = Док_;
                                   ДатаДока = Док_.ДатаДок;
                                   Сумма2 = Док_.СуммаОплаты;    
                                   
                                   Табл.ВывестиСекцию("Строка");
                               КонецЕсли;
                           КонецЕсли;
                       КонецЦикла;
                   КонецЕсли;
               КонецЦикла;
           КонецЕсли;
       КонецЦикла;
   КонецЦикла;
   Табл.ПараметрыСтраницы(2, , , , , , , , , 1);
   Табл.Опции(0, 0, 5, 5, "Расшифровка");
   Табл.ТолькоПросмотр(1);
   Табл.Показать("Расшифровка");
КонецПроцедуры

Помогите пожалуйста разобраться
106 zak555
 
15.12.11
14:38
(54) тоже г@вно-код
107 alex_reglament
 
15.12.11
14:38
подожди а где это у меня???
ТЗ = создатьОбъект("ТаблицаЗначений");
   ТЗ.Очистить();
   ТЗ.НоваяКолонка("Док");    
   ТЗ.НоваяКолонка("ОтгруженаСумма");
   ТЗ.НоваяКолонка("ОплаченаСумма");

иди это твой пример
108 alex_reglament
 
15.12.11
14:38
блин все у меня уже голова не варит
109 alex_reglament
 
15.12.11
14:38
(13) ладно забей давай вечером ок?
110 alex_reglament
 
15.12.11
14:39
я пока другой отчет добью
111 zak555
 
15.12.11
14:48
где чёткая формулировка задачи ?!
112 alex_reglament
 
15.12.11
14:51
(111) как мне тебе ее еще сформулировать?
113 zak555
 
15.12.11
15:07
распиши по-подробнее счёт ДЦ
это забаланс ?

аналитика у него
контры
накладная

какие галки стоят у все аналитик : везде суммовой и количественный учёт ?
какое оборотное субконто

когда идёт движение Дт, когда Кт ?
какими документами ?

и нарисуй, какой хочешь отчёт
114 alex_reglament
 
15.12.11
18:16
(113) я в (0) рписывал
115 zak555
 
15.12.11
18:26
(114) нарисуй на макете и выложи скриншот
116 alex_reglament
 
15.12.11
18:32
СчетПоКоду("ДЦ") = ДЦ .   .  , Отгрузка покупателю в рублях, вал+, кол+, заб+, Акт.А, субконто_1 = Контрагенты, Субконто_2 = Накладная, Субконто_3 = Видыдеятельности
движение дебет  
при отгрузке товара ДВИЖЕНИЕ по дебету сумма = 20,000 //Док= РасходТовара
при возврате товара Движение по Дебету сумма = -20,000//Док= ПоступлениеТовара
при возврате боя Движение по дебету скмма = -20,000 //Док = АктБоя
Движение Кредит
при закрытии накладных Движение по Кредиту сумма = 20,000 // Док = ЗакрытиеНакладных

отчет печатная форма №1
Контрагент,Унп,Банковские реквизиты,Сумма дебиторской задолжности,вт.ч <просроченнойКонтрагент(в свойствах значение расшифровка = Контрагент#)>,<УНП>,<РачетныйСчет>    ,<СуммаОбщая>,<СуммаПросроченная>
отчет печатная форма №2(Расшифровка)
Наименование документа    Дата    Сумма отгрузки    СуммаОплаты
<дОК>                  <ДатаДока>   <Сумма>      <Сумма2>
117 alex_reglament
 
15.12.11
18:34
заметь что при проведении
Док= ПоступлениеТовара
Док = АктБоя
сумма по дебету с минусом (Красная)
118 zak555
 
15.12.11
18:34
у аналитик какие галки ?
119 alex_reglament
 
15.12.11
18:35
(117) куда эти доки пихать я не знаю!!! толи это считается оплатой толи расходом
120 alex_reglament
 
15.12.11
18:36
Учет по смумме
учет по вал сумме
учет по количеству
это у всех субконто счета ДЦ
121 alex_reglament
 
15.12.11
18:37
+(119) знаю только что проводка по кредиту сумма является оплатой
122 alex_reglament
 
15.12.11
18:37
(118) ну что ты мне поможешь?
123 alex_reglament
 
15.12.11
18:38
дай ссылку куда скрин сохранить
124 zak555
 
15.12.11
18:42
(120) галки только оборот нет ?
125 zak555
 
15.12.11
18:42
126 alex_reglament
 
15.12.11
18:43
нет! на оборотах нету галок
127 alex_reglament
 
15.12.11
18:44
128 alex_reglament
 
15.12.11
18:45
а вот расшифровка
http://s017.radikal.ru/i401/1112/26/757443ae0672.jpg
129 zak555
 
15.12.11
18:53
как я понял

сумма дебеторской задолженности это СКД счёта ДЦ в разрезе контра

сумму отгрузки делают доки :
РасходТовара      Дт        Сумма
ПоступлениеТовара Дт       -Сумма
АктБоя            Дт       -Сумма

сумма оплаты это
ЗакрытиеНакладных Кт        Сумма



так ?
130 zak555
 
15.12.11
18:56
+ мне не понятно, почему аналитика Видыдеятельности не оборотная ?!
131 alex_reglament
 
15.12.11
18:57
ПоступлениеТовара Дт       -Сумма
АктБоя  
я не знаю к чему их отнести
132 alex_reglament
 
15.12.11
18:57
на это не расход это точно!
133 alex_reglament
 
15.12.11
18:58
(130) я поняти не имею
134 Ёпрст
 
15.12.11
19:00
(0)всё не читал, пересчитай бух итоги.
135 alex_reglament
 
15.12.11
19:01
(134) не понял извини
136 zak555
 
15.12.11
19:03
(131) так узнай
137 alex_reglament
 
15.12.11
19:05
ПоступлениеТовара Дт       -Сумма
АктБоя  
их вообще не трогать
138 alex_reglament
 
15.12.11
19:06
они в отчет попасть не должны
139 alex_reglament
 
15.12.11
19:06
почему аналитика Видыдеятельности не оборотная  
я не знаю и спросить не у кого
140 zak555
 
15.12.11
19:08
(137) т.е. они не должны вычитать из таблицы (127 ?
141 alex_reglament
 
15.12.11
19:09
ПоступлениеТовара Дт   это если клиент возврощает товар тогда от оплаты минус сумму из дока
142 alex_reglament
 
15.12.11
19:10
акт боя это если не довезли товар значи от суммы отгрузки минусуем сумму этого дока
143 alex_reglament
 
15.12.11
19:10
(140) должны с условием (141,142)
144 alex_reglament
 
15.12.11
19:11
+(143) из виняюсь за диз информацию клиент позванил обьяснил как должно быть
145 zak555
 
15.12.11
19:13
перепиши нормально
а то глаза разбегаются куда смотреть
146 alex_reglament
 
15.12.11
19:18
Если ПоступлениеТовара.ФлВозврата = 1 тогда
ДЦ.КО - ПоступлениеТовара.Итог(СуммаСНДС);
конецЕсли

Если актБоя есть в подциненных тогда
ДЦ.ДО - АктБоя.Итог(СуммаСНДС);
КонецЕсли
147 alex_reglament
 
15.12.11
19:18
(146) так ок?
148 zak555
 
15.12.11
19:23
я так понял, что КО - это закрытие заявки
149 alex_reglament
 
15.12.11
19:25
какой заявки?
150 alex_reglament
 
15.12.11
19:25
КО = СуммаОплаты контрагентом
151 zak555
 
15.12.11
19:26
а ты тогда, что пишешь в (146) ???

у тебя возврат это КО
152 alex_reglament
 
15.12.11
19:29
если док поступление товара есть в подчиненных в накладной и у него флагвозврата = 1 тогда сумму этого подчиненного дока минусуем из суммы оплаты контрагента он же вернул товар а мы ему деньги за этот товар что он вернул
153 alex_reglament
 
15.12.11
19:34
СуммаОплаты = ДЦ.КО
СуммаОтгрузки = Дц.ДО
если одчиненныеДокументы.ВыбратьПодчиненныеДокументы(,,ДЦ.Субконто(2).ТекущийДокумент()) = 1 тогда
если одчиненныеДокументы.Вид() = "ПоступлениеТовара" тогда
Если одчиненныеДокументы.ФлОтгрузки = 1 тогда
суммаОплаты_1 = СуммаОплаты - одчиненныеДокументы.Итог(СуммаСНДС)
конецЕсли;
конецЕсли;
конецЕсли;
154 zak555
 
15.12.11
19:34
Типы занчений Субконто2 и Субконто3 ?
155 alex_reglament
 
15.12.11
19:35
+(153)
если ДЦ.Субконто(2).Вид() = "РасходТовара" тогда
СуммаОтгрузки = Дц.ДО
конецЕсли
156 alex_reglament
 
15.12.11
19:35
Субконто3 вообще там не нужны
157 alex_reglament
 
15.12.11
19:36
Субконто2 = Накладная (ДокументРасходТовара)
158 alex_reglament
 
15.12.11
19:36
Субконто(1) = Контрагенты (Справочник.Контрагенты
159 alex_reglament
 
15.12.11
19:38
вот скрин дока Закрытие накладных
http://s017.radikal.ru/i406/1112/56/2757086c18c1.jpg
а вот его операция
http://s017.radikal.ru/i432/1112/99/e0eba6553592.jpg
160 zak555
 
15.12.11
19:41
(156) важно
161 alex_reglament
 
15.12.11
19:41
ну что?
162 zak555
 
15.12.11
19:42
(159) скрин не уменьшай
ничего не вижу
163 alex_reglament
 
15.12.11
19:42
(160) не понял
164 zak555
 
15.12.11
19:43
(163) что такое субконто3
165 alex_reglament
 
15.12.11
19:43
вот скрин дока Закрытие накладных
http://s006.radikal.ru/i215/1112/66/ab4748f8aca9.png
166 alex_reglament
 
15.12.11
19:44
167 zak555
 
15.12.11
19:44
покажи операцию прихода
168 alex_reglament
 
15.12.11
19:47
вот приход (с флвгом возврат)
http://s017.radikal.ru/i414/1112/bc/09708a190dba.png
169 zak555
 
15.12.11
19:52
как в приходе аналитика расхода ? о_О
170 alex_reglament
 
15.12.11
19:52
ДаА
171 zak555
 
15.12.11
19:53
я тогда ничего не понимаю
172 alex_reglament
 
15.12.11
19:54
вот и я по этому и запутался
173 zak555
 
15.12.11
19:55
ну так надо разбираться : открывать осв по счету/карточку и вперёд
174 alex_reglament
 
15.12.11
19:57
не понял по  осв ? что это?
175 zak555
 
15.12.11
19:58
бу га га
176 zak555
 
15.12.11
19:59
Оборотно-сальдовая ведомость
177 alex_reglament
 
15.12.11
20:01
скрин?
Оборотно-сальдовая ведомость
178 alex_reglament
 
15.12.11
20:04
179 zak555
 
15.12.11
20:04
ты прикалываешься ?
180 alex_reglament
 
15.12.11
20:05
(179) гдето да :))
подрубишься?
181 zak555
 
15.12.11
20:05
аналитику НДС убери совсем
182 alex_reglament
 
15.12.11
20:06
(181) теперь ты прикалываешься
183 zak555
 
15.12.11
20:08
в осв по счету есть такое поняте, как не учитывать пр и выводе ту или иную аналитику
184 alex_reglament
 
15.12.11
20:11
да я понял загляни в аську
185 zak555
 
15.12.11
21:07
что такое аська ?
186 alex_reglament
 
16.12.11
10:49
(185) прикалываешься?
187 zak555
 
16.12.11
11:05
всё ещё кипятим ?
188 alex_reglament
 
16.12.11
11:19
(187) :))
189 alex_reglament
 
16.12.11
11:27
(187) что ты скажшь если пользовать
Док = СоздатьОбъект("Документ");
   Док.ВыбратьДокументы(ДатаНач,ДатаКон);
в моем случае
190 zak555
 
16.12.11
11:28
я не вижу ОСВ по счету ДЦ без разворота на последней аналитике
191 alex_reglament
 
16.12.11
11:43
производство НДС 10%
192 alex_reglament
 
16.12.11
11:43
это его аналитика
193 zak555
 
16.12.11
11:44
так вот
сформируй ОСВ по счёту без этой аналитики
194 alex_reglament
 
16.12.11
11:45
не понимаю как???
195 alex_reglament
 
16.12.11
11:46
извини туплю
196 alex_reglament
 
16.12.11
11:46
формирую
197 alex_reglament
 
16.12.11
11:48
198 zak555
 
16.12.11
11:57
т.е. по Дт не движений ?
199 zak555
 
16.12.11
11:57
*нет
200 alex_reglament
 
16.12.11
12:33
правильно за этот квартал небыло
201 zak555
 
16.12.11
13:22
покажи, где было
202 alex_reglament
 
16.12.11
17:43
(201) ок
203 zak555
 
16.12.11
17:43
ещё кипятим ?
204 sergei123654
 
19.12.11
17:25
ну так че там? получилось?

(203) что там по г@внокоду? если есть свободная минутка - приведи тоже самое что в (54) только чтоб не г@вно код был. для общего развития очень бы помогло.
205 zak555
 
19.12.11
19:16
(204) для начала поменять разворот по субконт
сначала  разворот, а потом отбор