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

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
"Вот пример выборки данных из массива ведомостей."
Наконец-то дошли руки попробовать...Этот запрос замечательно работает за одним исключением: задваивает людей, у которых было несколько документов, удостоверяющих личность. Никак не пойму почему, вроде бы там прописано РегистрСведений.ДокументыФизическихЛиц.СрезПоследних(
должен и вытаскиваться последний док...?


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