Заказы на доработку 1С (сервис удаленной работы)

Хранилище

База знаний
Неназначенных незавершенных заказов: 2
Бесплатные отчеты, обработки, конфигурации, внешние компоненты для 1С Статьи, описание работы, методики по работе с 1С

Здравствуйте, гость ( Вход | Зарегистрироваться )



> Выборка в запросе          
wmatik Подменю пользователя
сообщение 28.10.11, 9:00
Сообщение #1

Оратор
*****
Группа: Пользователи
Сообщений: 294
Спасибо сказали: 1 раз
Рейтинг: 0

1С Предприятие 7.7(сетевая версия) - 7.70.027,Конфигурация: ПУБ (7.70.010)
Подскажите, что не так делаю, есть два документа, ДоговорРасх и БанковскаВыписка. В банковских выписках есть реквизит субконто3 в котором указывается ДоговорРасх.Необходимо чтобы в отчет выводило из документа ДоговорРасх следующие поля: контрагент, номердоговора,датаначала,датаокончания, коддк,сумма1, и из документа БанковскаяВыписка чтобы подсоединяло суммасндс и датадок:
Процедура Сформировать()
    Перем Запрос, ТекстЗапроса, Таб;
    //Создание объекта типа Запрос
    Запрос = СоздатьОбъект("Запрос");
    ТекстЗапроса =
    "//{{ЗАПРОС(Сформировать)
    |Период с ВыбНачПериода по ВыбКонПериода;
    |ОбрабатыватьДокументы Проведенные;
    |Контрагент = Документ.ДоговорРасх.Контрагент;
    |НомерДоговора = Документ.ДоговорРасх.НомерДоговора;
    |ДатаНачала = Документ.ДоговорРасх.ДатаНачала;
    |ДатаОкончания = Документ.ДоговорРасх.ДатаОкончания;
    |Сумма1 = Документ.ДоговорРасх.Сумма1;  
    |Док = Документ.БанковскаяВыписка.ТекущийДокумент;
    |Группировка Контрагент;
    |"//}}ЗАПРОС
;
    // Если ошибка в запросе, то выход из процедуры
    Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда
        Возврат;
    КонецЕсли;

    // Подготовка к заполнению выходных форм данными запроса
    Таб = СоздатьОбъект("Таблица");
    Таб.ИсходнаяТаблица("Сформировать");
    // Заполнение полей "Заголовок"
    Таб.ВывестиСекцию("Заголовок");
    Состояние("Заполнение выходной таблицы...");
    Таб.Опции(0, 0, Таб.ВысотаТаблицы(), 0);

    Док = "";

    Пока Запрос.Группировка(1) = 1 Цикл
        Док = Запрос.Док;    
        Контрагент = Запрос.Контрагент;
        НомерДоговора = Запрос.НомерДоговора;
        Сумма1 = Запрос.Сумма1;
        ДатаНачала = Запрос.ДатаНачала;
        ДатаОкончания = Запрос.ДатаОкончания;
        Если (Док.Вид() = "БанковскаяВыписка") Тогда  
            Если ПустоеЗначение ("Субконто1") = 0 Тогда
                СуммаСНДС = Док.СуммаСНДС;
            КонецЕсли;
        КонецЕсли;
        
            Таб.ВывестиСекцию("Строка");
    КонецЦикла;

    Таб.ТолькоПросмотр(1);          
    Таб.Показать("Сформировать", "");
КонецПроцедуры

из документа ДоговорРасх все поля подсоединяются,а вот из банковской выписки нет

немного неправильно указала, в документе БанковскаяВыписка в субконто1 указывается контрагент, а в субконто 3 договора расходные


Signature
1С Предприятие 7.7(сетевая версия) - 7.70.027,Конф: ПУБ(7.70.010)

nysysimara Подменю пользователя
сообщение 28.10.11, 9:23
Сообщение #2

Оратор
Иконка группы
Группа: Местный
Сообщений: 312
Из: Бердянск
Спасибо сказали: 110 раз
Рейтинг: 0

Цитата
немного неправильно указала, в документе БанковскаяВыписка в субконто1 указывается контрагент, а в субконто 3 договора расходные


уточните задачу
как я поняла: нужен бух.запрос по проводкам Документа Банковская ?


Signature
1С Предприятие 7.7: Бух. учет для Украины (активно дописанная) + самописка (учет производства и ЗП)
1С Предприятие 8.3: Бух.предприятия 3.0 + самописка
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Кроме высшего образования, нужно иметь хотя бы среднее соображение

wmatik Подменю пользователя
сообщение 28.10.11, 9:28
Сообщение #3

Оратор
*****
Группа: Пользователи
Сообщений: 294
Спасибо сказали: 1 раз
Рейтинг: 0

в принципе да, необходимо запрос который бы выбирал из банковских выписок строки с указанным договором, а именно нужна соответветствующая договору сумма


Signature
1С Предприятие 7.7(сетевая версия) - 7.70.027,Конф: ПУБ(7.70.010)

kalyamov Подменю пользователя
сообщение 28.10.11, 10:48
Сообщение #4

Завсегдатай
Иконка группы
Группа: Местный
Сообщений: 186
Спасибо сказали: 31 раз
Рейтинг: 0

Таким запросом как делаете Вы будет тяжело получить нужные данные. Субконто3 как и 1 и 2 - неопределенного типа. Ваш запрос должен был бы выглядеть примерно так :
ДокРасх = Документ.БанковскаяВыписка.Субконто3;
Контрагент = Документ.БанковскаяВыписка.Субконто3.Контрагент
ДатаОплаты = Документ.БанковскаяВыписка.ДатаДок;
СуммаОплаты = Документ.БанковскаяВыписка.СуммаСНДС
Группировка Контрагент;



Но так как Субконто3 не всегда ДокРасх , то такой запрос не получится, или делать выборку с условием, что субконто3 это Документ и уже в обходе запроса делать нужные отборки.
Можно сделать через проводки бух. Запросом. Там есть ИспользоватьСубконто() - где и будут Ваши договора. По идее это 361 счет, но там два субконто, а у Вас получается , что три.

Второй вариант проще и правильней, но хотелось бы увидеть проводки Банк.Выписки которые Вам нужны.
Причина редактирования: А зачем цитирование?

Спасибо сказали: wmatik,

MATEVI Подменю пользователя
сообщение 28.10.11, 11:10
Сообщение #5

Отдыхающий
Иконка группы
Ветеран троянской войныМодератору Про1С (за заслуги в 2011 году)
Группа: Местный
Сообщений: 2201
Из: Одесса
Спасибо сказали: 956 раз
Рейтинг: 0

Где то на форуме уже поднималась тема с банковской выпиской и с субконто неопределенного типа. Поищите. Думаю там есть ответ на Ваш вопрос.
Я честно сказать не помню, только, где точно.

Спасибо сказали: wmatik,

alex1c Подменю пользователя
сообщение 28.10.11, 12:04
Сообщение #6

Завсегдатай
Иконка группы
Группа: Местный
Сообщений: 235
Спасибо сказали: 45 раз
Рейтинг: 40

Вообще-то, когда я проходил атестацию по 1С, то экзаменатор, сказал: "Никогда не делать отчеты по документам, только по движениям которые делает документ." Это как-раз тот случай.

Спасибо сказали: wmatik,

kalyamov Подменю пользователя
сообщение 28.10.11, 12:18
Сообщение #7

Завсегдатай
Иконка группы
Группа: Местный
Сообщений: 186
Спасибо сказали: 31 раз
Рейтинг: 0

Они много чего говорят, не обязательно их слушать. А случай действительно тот. Если это ПУБ, то там и движения по регистрам должны быть.

Спасибо сказали: wmatik,

alex1c Подменю пользователя
сообщение 28.10.11, 12:29
Сообщение #8

Завсегдатай
Иконка группы
Группа: Местный
Сообщений: 235
Спасибо сказали: 45 раз
Рейтинг: 40

Цитата(kalyamov @ 28.10.11, 13:18) *
Они много чего говорят, не обязательно их слушать. А случай действительно тот. Если это ПУБ, то там и движения по регистрам должны быть.


Целиком согласен.

Спасибо сказали: wmatik,

Ardi Подменю пользователя
сообщение 28.10.11, 13:33
Сообщение #9

Живет на форуме
***********
Гений телепатии и социального моделирования
Группа: Пользователи
Сообщений: 4121
Из: Киев
Спасибо сказали: 957 раз
Рейтинг: 0

Цитата(alex1c @ 28.10.11, 13:04) *
Вообще-то, когда я проходил атестацию по 1С, то экзаменатор, сказал: "Никогда не делать отчеты по документам, только по движениям которые делает документ."

Странно. А почему Абби об этом никогда не слышала?


Signature
Услуги 1С программиста 8.2, 7.7 (Плохо, дорого, очередь). Киев.

Kutuzov Подменю пользователя
сообщение 02.12.11, 16:31
Сообщение #10

Оратор
Иконка группы
Группа: Местный
Сообщений: 328
Из: Одесса
Спасибо сказали: 144 раз
Рейтинг: 0

Конфигурация Буха 7.7 289

Есть список для отбора в запросе
    ДокНАйти = СоздатьОбъект("Документ.ПриходнаяНакладная");
    СпПартий = СоздатьОбъект("СписокЗначений");
    Флаг=1;
    ТзДокументДанные.ВыбратьСтроки();
    Пока ТзДокументДанные.ПолучитьСтроку()=1 Цикл  
        Если Флаг=1 Тогда
            Если ДокНАйти.НайтиПоНомеру(ТзДокументДанные.НомерДокума,ТзДокументДанные.ДатаДокум,)= 1 тогда
                ДокТек =ДокНайти.ТекущийДокумент();
                СпПартий.ДобавитьЗначение(ДокТек);
                ПрошлыйНомерДокума = ТзДокументДанные.НомерДокума;
                Флаг=0;
            КонецЕсли;
        КонецЕсли;
        Если (ТзДокументДанные.НомерДокума <> ПрошлыйНомерДокума)  Тогда
            Если ДокНАйти.НайтиПоНомеру(ТзДокументДанные.НомерДокума,ТзДокументДанные.ДатаДокум,)= 1 тогда
                ДокТек = ДокНайти.ТекущийДокумент();
                СпПартий.ДобавитьЗначение(ДокТек);
                ПрошлыйНомерДокума = ТзДокументДанные.НомерДокума;
                Флаг=0;                                                                                      
            КонецЕсли;
        КонецЕсли;
  
    КонецЦикла;


Получаю в список ссылки на документы. Теперь пытаюсь в запросе выбрать документы РН в которых есть документы партии, то есть ПН из списка

пишу запрос
    Запрос = СоздатьОбъект("Запрос");
    ТекстЗапроса =
    "//{{ЗАПРОС(Сформировать)
    |РасходнаяНакладная = Документ.РасходнаяНакладная.ТекущийДокумент;
    |Фирма = Документ.РасходнаяНакладная.Фирма;
    |Патриот = Документ.РасходнаяНакладная.Партия.Док;
    |ДатаПартии =Документ.РасходнаяНакладная.Партия.Дата_Прих;
    |Группировка РасходнаяНакладная;
    |Группировка Патриот;
    |Группировка ДатаПартии;    
    |без Итогов;
    |Условие(Фирма в Фирма);
    |Условие(Патриот в СпПартий);
    |"


Документ.РасходнаяНакладная.Партия.Док - это ссылка на документ который мне надо

В итоге при работе запроса результат пустой или пустая строка, но если убираю условие то он нормально отрабатывая выводя все РН.
Каким макаром вылечить этот запрос???


Signature
Вы станете богаче, лишь став умнее...
Чем дальше в лес, тем толще партизаны.
Нельзя недооценивать, не предсказуемость тупизны...

Vofka Подменю пользователя
сообщение 02.12.11, 16:37
Сообщение #11

У нас здесь своя атмосфера...
***********
Группа: Основатель
Сообщений: 13955
Из: Киев
Спасибо сказали: 4520 раз
Рейтинг: 3642.8

Тема закрыта.

Kutuzov, может и название темы соответствует вашей мысли, но т.к. смысл другой, насколько я понимаю, то создавайте новую тему.

Не нашли ответа на свой вопрос?
Зарегистрируйтесь и задайте новый вопрос.


Тема закрыта Новая тема
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

RSS Текстовая версия Сейчас: 25.04.24, 10:03
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!