Вход | Регистрация

1С:Предприятие :: 1С:Предприятие 8 общая

ЗУП 3.1. Невидимые строки в документе Ведомость в банк

ЗУП 3.1. Невидимые строки в документе Ведомость в банк
Я
   bvn-2005
 
30.01.18 - 13:50
Док Ведомость в банк. В табличной части одна строка:
Сотрудник: Иванов; К выплате: 10 626,50.
А запрос по табличной части этого документа выдает 2 строки:
Сотрудник: Иванов; К выплате: -5 400
Сотрудник: Иванов; К выплате: 16 026,5
В сумме те же 10 626,50...
Что это такое?
 
 
   asady
 
1 - 30.01.18 - 13:56
(0) это называется группировка

ты там кто?
   KnightAlone
 
2 - 30.01.18 - 13:58
(0) это расшифровка. 5400 аванс, смотри РН ВзаиморасчетыССотрудниками
   SleepyHead
 
3 - 30.01.18 - 14:07
(0) В форме ведомости поставь курсор на сотрудника и нажми кнопку "Изменить зарплату", увидишь, из чего сложилась итоговая сумма.
   bvn-2005
 
4 - 30.01.18 - 14:17
"нажми кнопку "Изменить зарплату""
Получается, -5400 - это аванс...
Собственно, задача: перебрать табличную часть документа и вывести данные по выплатам в excel. Предполагалось, что один человек - одна строка...
   SleepyHead
 
5 - 30.01.18 - 14:20
(4) Какую проблему ты решаешь, выводя в эксел строки документа?
   borodaty_pontorez
 
6 - 30.01.18 - 14:39
(4) пользуйся
        ТаблицаПоСотруднику = парамВедомостьНаВыплатуЗарплатыВБанк.Зарплата.Выгрузить();
        Отбор = Новый Структура("ФизическоеЛицо", ТекСтрока.ФизическоеЛицо); 
        МассивСтрок = ТаблицаПоСОтруднику.НайтиСтроки(Отбор);
        СвернутаяТаблица = парамВедомостьНаВыплатуЗарплатыВБанк.Зарплата.Выгрузить(МассивСтрок);
        ИтоговаяСуммаСотрудника = СвернутаяТаблица.Итог("КВыплате");
   bvn-2005
 
7 - 30.01.18 - 14:47
"Какую проблему ты решаешь"
Файл для банка для перечисления на карточки
   SleepyHead
 
8 - 30.01.18 - 14:49
(7)

Вот пример выборки данных из массива ведомостей. Дата передается для чтения ФИО из регистра сведений по фио сотрудников и для выборки прочих периодических данных

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

        |ВЫБРАТЬ
        |    Зарплата.ФизическоеЛицо.Наименование КАК ФИО,
        |    ЕСТЬNULL(ФИО.Фамилия, """") КАК Фамилия,
        |    ЕСТЬNULL(ФИО.Имя, """") КАК Имя,
        |    ЕСТЬNULL(ФИО.Отчество, """") КАК Отчество,
        |    ЕСТЬNULL(Паспорта.Серия, """") КАК Серия,
        |    ЕСТЬNULL(Паспорта.Номер, """") КАК Номер,
        |    Зарплата.НомерЛицевогоСчета КАК НомерСчета,
        |    СУММА(Зарплата.КВыплате) КАК Сумма
        |ИЗ
        |    Документ.ВедомостьНаВыплатуЗарплатыВБанк.Зарплата КАК Зарплата
        |        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ФИОФизическихЛиц.СрезПоследних(
        |                &ДатаФормирования,
        |                ФизическоеЛицо В
        |                    (ВЫБРАТЬ РАЗЛИЧНЫЕ
        |                        ВТ_ФизЛица.ФизическоеЛицо КАК ФизическоеЛицо
        |                    ИЗ
        |                        ВТ_ФизЛица КАК ВТ_ФизЛица)) КАК ФИО
        |        ПО Зарплата.ФизическоеЛицо = ФИО.ФизическоеЛицо
        |        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ДокументыФизическихЛиц.СрезПоследних(
        |                &ДатаФормирования,
        |                Физлицо В
        |                    (ВЫБРАТЬ
        |                        ВТ_ФизЛица.ФизическоеЛицо КАК ФизическоеЛицо
        |                    ИЗ
        |                        ВТ_ФизЛица КАК ВТ_ФизЛица)) КАК Паспорта
        |        ПО Зарплата.ФизическоеЛицо = Паспорта.Физлицо
        |ГДЕ
        |    Зарплата.Ссылка В(&МассивВедомостей)
        |
        |СГРУППИРОВАТЬ ПО
        |    Зарплата.НомерЛицевогоСчета,
        |    Зарплата.ФизическоеЛицо.Наименование,
        |    ЕСТЬNULL(ФИО.Фамилия, """"),
        |    ЕСТЬNULL(ФИО.Имя, """"),
        |    ЕСТЬNULL(ФИО.Отчество, """"),
        |    ЕСТЬNULL(Паспорта.Серия, """"),
        |    ЕСТЬNULL(Паспорта.Номер, """")
        |
        |ИМЕЮЩИЕ
        |    СУММА(Зарплата.КВыплате) > 0
        |
        |УПОРЯДОЧИТЬ ПО
        |    ФИО";
    Запрос.УстановитьПараметр("ДатаФормирования", НачалоДня(ДатаФормирования));
    Запрос.УстановитьПараметр("МассивВедомостей", МассивВедомостей);
    
    Т = Запрос.Выполнить().Выгрузить();
   SleepyHead
 
9 - 30.01.18 - 14:50
(7) Запрос обобщает суммы по всем строкам ведомостей и физлицам.
   Джо-джо
 
10 - 30.01.18 - 14:52
(7) В ЗУПе это уже есть
 
 Рекламное место пустует
   bvn-2005
 
11 - 30.01.18 - 14:54
"В ЗУПе это уже есть"
Есть что? Выгрузка в файл совершенно определенной структуры под требования конкретного банка? Подскажи, где искать...
   SleepyHead
 
12 - 30.01.18 - 14:59
(11) В ЗУп 3.1 есть обмен, которым пользуется сбер (формат XML). Уточни в своем банке, поддерживают ли они этот формат.

В некоторых банках напрямую не поддерживают, но вот например в росбанке дают конвертер, который их XML делает формат, который жрет росбанк.
   bvn-2005
 
13 - 30.01.18 - 15:04
Про сбер в курсе. Здесь надо Эксель по их форме.
   bvn-2005
 
14 - 30.01.18 - 15:07
В ред. 2.5 подобная обработка вполне себе работала несколько лет. Да и в ред. 3 начала было, пока не наткнулись на мужика, уволенного после получения аванса...
   Джо-джо
 
15 - 30.01.18 - 15:07
(11) Да, есть выгрузка определённой структуры, если не устраивает, то поменяй структуру
   bvn-2005
 
16 - 30.01.18 - 15:22
"пример выборки данных из массива ведомостей."
Что-то сложновато для моей проблемы...
Думаю так:
"ВЫБРАТЬ
|    ВедомостьНаВыплатуЗарплатыВБанк.Ссылка КАК Ссылка,
|    ВедомостьНаВыплатуЗарплатыВБанк.Номер КАК Номер,
|    ВедомостьНаВыплатуЗарплатыВБанк.Дата КАК Дата,
|    ВедомостьНаВыплатуЗарплатыВБанк.Зарплата.(
|        Ссылка КАК Ссылка,
|        Сотрудник КАК Сотрудник,
|        ФизическоеЛицо КАК ФизическоеЛицо,
|        СУММА(КВыплате) КАК КВыплате,
|        НомерЛицевогоСчета КАК НомерЛицевогоСчета
|    ) КАК Зарплата
|ИЗ
|    Документ.ВедомостьНаВыплатуЗарплатыВБанк КАК ВедомостьНаВыплатуЗарплатыВБанк
|ГДЕ
|    ВедомостьНаВыплатуЗарплатыВБанк.Ссылка = &Ссылка
|
|СГРУППИРОВАТЬ ПО
|    ВедомостьНаВыплатуЗарплатыВБанк.Зарплата.(Ссылка,
|    Сотрудник,
|    ФизическоеЛицо,
|    НомерЛицевогоСчета)"

Надо же всего лишь свернуть табличную часть одного конкретного документа по сотрудникам...
???
   SleepyHead
 
17 - 30.01.18 - 17:44
(16) А потом всего лишь вытащить оттуда ФИО, да? вот запрос и вытаскивает так, чтобы потом не пришлось тащить ФИО из каждого физлица путем чтения всего объеккта.
   bvn-2005
 
18 - 12.02.18 - 15:57
"Вот пример выборки данных из массива ведомостей."
Наконец-то дошли руки попробовать...Этот запрос замечательно работает за одним исключением: задваивает людей, у которых было несколько документов, удостоверяющих личность. Никак не пойму почему, вроде бы там прописано РегистрСведений.ДокументыФизическихЛиц.СрезПоследних(
должен и вытаскиваться последний док...?

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует