Автор темы
Мне нужно отобрать за период операции (или хотя бы одну) в проводках которой присутствует определенный договор. Как это сделать? Если через черный запрос - то пожалуйста приведите пример текста подобного запроса. Заранее спасибо
Следуйте инструкциям в видео ниже, чтобы узнать, как установить наш сайт как веб-приложение на главный экран вашего устройства.
Примечание: Эта функция может быть недоступна в некоторых браузерах.
Краткие тезисы обсуждения со ссылками на ключевые ответы появятся здесь.
Ключевые ответы обсуждения и их оценка появятся здесь.
Участники с сильными ответами в этой теме появятся здесь.
Опер = СоздатьОбъект("Операция");
Опер.ИспользоватьСубконто(...); //Указываем отбор по нужному договору
Опер.ВыбратьОперацииСПроводками(...); //Выборка операций
Примеры:как мне отобрать проводки
Пока ТЗОбработка.ПолучитьСтроку()=1 Цикл
ДатаДог = Лев(ТЗОбработка.Договор.Наименование,2)+"."+Сред(ТЗОбработка.Договор.Наименование,3,2)+"."+Сред(ТЗОбработка.Договор.Наименование,5,2);
Опер = СоздатьОбъект("Операция");
Опер.ИспользоватьСубконто(ВидыСубконто.Договоры,ТЗОбработка.Договор);
Если Опер.ВыбратьОперацииСПроводками(Дата(ДатаДог),КонМесяца(ДатаСверки), ) = 1 Тогда;
Если Опер.ПолучитьОперацию()=1 Тогда
Опер.ВыбратьПроводки();
Пока Опер.ПолучитьПроводку() = 1 Цикл
Если Лев(ТЗОбработка.Номенклатура,3) = "Пок" Тогда
Если (Опер.Д*цензура*.Счет.Код = "51") И (Опер.Кредит.Счет.Код = "76.5") Тогда
Если ТЗ.НайтиЗначение(Опер.Д*цензура*.Контрагенты,СТЗ,"Контрагент") = 1 Тогда
ТЗ.ПолучитьСтрокуПоНомеру(СТЗ);
ТЗ.Покупатели = ТЗОбработка.Остаток*(-1)+ТЗ.Покупатели;
КонецЕсли;
ИначеЕсли (Опер.Д*цензура*.Счет.Код = "76.5") И (Опер.Кредит.Счет.Код = "90.1.1") Тогда
Если ТЗ.НайтиЗначение(Опер.Д*цензура*.Контрагенты,СТЗ,"Контрагент") = 1 Тогда
ТЗ.ПолучитьСтрокуПоНомеру(СТЗ);
ТЗ.Покупатели = ТЗОбработка.Остаток*(-1)+ТЗ.Покупатели;
КонецЕсли;
ИначеЕсли (Опер.Д*цензура*.Счет.Код = "76.5") И (Опер.Кредит.Счет.Код = "76.5") Тогда
Если Опер.Кредит.Контрагенты <> Опер.Д*цензура*.Контрагенты Тогда
Если ТЗ.НайтиЗначение(Опер.Кредит.Контрагенты,СТЗ,"Контрагент") = 1 Тогда
ТЗ.ПолучитьСтрокуПоНомеру(СТЗ);
ТЗ.Покупатели = ТЗОбработка.Остаток+ТЗ.Покупатели;
КонецЕсли;
КонецЕсли;
КонецЕсли;
Иначе
Если (Опер.Д*цензура*.Счет.Код = "76.5") И (Опер.Кредит.Счет.Код = "51") Тогда
Если ТЗ.НайтиЗначение(Опер.Кредит.Контрагенты,СТЗ,"Контрагент") = 1 Тогда
ТЗ.ПолучитьСтрокуПоНомеру(СТЗ);
ТЗ.Продавцы = ТЗОбработка.Остаток+ТЗ.Продавцы;
КонецЕсли;
ИначеЕсли (Опер.Д*цензура*.Счет.Код = "76.5") И (Опер.Кредит.Счет.Код = "90.1.1") Тогда
Если ТЗ.НайтиЗначение(Опер.Д*цензура*.Контрагенты,СТЗ,"Контрагент") = 1 Тогда
ТЗ.ПолучитьСтрокуПоНомеру(СТЗ);
ТЗ.Продавцы = ТЗОбработка.Остаток+ТЗ.Продавцы;
КонецЕсли;
ИначеЕсли (Опер.Д*цензура*.Счет.Код = "76.5") И (Опер.Кредит.Счет.Код = "76.5") Тогда
Если Опер.Кредит.Контрагенты <> Опер.Д*цензура*.Контрагенты Тогда
Если ТЗ.НайтиЗначение(Опер.Д*цензура*.Контрагенты,СТЗ,"Контрагент") = 1 Тогда
ТЗ.ПолучитьСтрокуПоНомеру(СТЗ);
ТЗ.Продавцы = ТЗОбработка.Остаток*(-1)+ТЗ.Продавцы;
КонецЕсли;
КонецЕсли;
КонецЕсли;
КонецЕсли;
КонецЦикла;
КонецЕсли;
КонецЕсли;
КонецЦикла;
Сдесь обязательное указание счета и коррсчета, и проводки будут выбиратся по этим параметрамВыбратьОперацииСПроводками(Дата(ДатаДог),КонМесяца(ДатаСверки),
Опер = СоздатьОбъект("Операция");
Пока ТЗОбработка.ПолучитьСтроку()=1 Цикл
Опер.ИспользоватьСубконто(ВидыСубконто.Договоры,ТЗОбработка.Договор);
Опер.ВыбратьОперацииСПроводками(ДатаДог,КонМесяца(ДатаСвертки)); //Кстати, в вашем примере вы какую-то лабуду пишите в ДатаДог
Опер.ВыбратьПроводки();
Пока Опер.ПолучитьПроводку() = 1 Цикл
//Тут делаете, что хотите с проводками
КонецЦикла;
КонецЦикла;