Страницы: Пред. 1 2 3 След.
RSS
Привести данные из 1С в нужный вид для сводной в ексель
 
Эта ошибка выходит при введении данных в таблицу или при обновлении нижнего запроса?
Вот горшок пустой, он предмет простой...
 
Ошибка выходит при обновлении нижнего запроса. Я нажимаю правой кнопкой мышки на зеленую таблицу и выбираю обновить, после выходит ошибка.
 
В настройках надстройки найдите пункт Диагностика на этой странице указана версия PQ. Какая она у вас?
Вот горшок пустой, он предмет простой...
 
32 - разрядная
 
Не думаю, что в этом дело. А в чем проблема понять не могу.
Написал Максиму Зеленскому, остается надеяться что он или кто-то еще из опытных товарищей смогут помочь разобраться.
А если открыть сам запрос в редакторе он таблицу прогрузит или выдаст ту же ошибку?
Изменено: PooHkrd - 03.08.2018 11:17:48
Вот горшок пустой, он предмет простой...
 
Согласен, дело не в этом. Дело во мне, скорее всего :). Будем ждать, может кто подскажет...
А если я с нуля сделаю себе такую же таблицу? Есть какой-нибудь совет или материал на который можно опираться, как на шаблон?
Изменено: Darkhan - 03.08.2018 11:21:10
 
Я вам ссылку давал на автора функции. По его ссылкам я скачал все шаблоны и кое-чего там кнопочками добавил, чтобы разобрать именно ваш отчет.
Вот горшок пустой, он предмет простой...
 
Цитата
Darkhan написал:
Высылаю во вложении
подтверждаю, у меня то же самое...
 
Цитата
PooHkrd написал:
А если открыть сам запрос в редакторе он таблицу прогрузит или выдаст ту же ошибку?
Пробовали?
Вот горшок пустой, он предмет простой...
 
Пробовал. Таблица не грузится, выдает ошибку.
Изменено: Darkhan - 03.08.2018 23:47:31
 
Кажется понял.
Сделайте вот такую настройку, сохраните и закройте книгу, потом откройте и попробуйте обновить запрос снова.
Вот горшок пустой, он предмет простой...
 
Ну классика же. Formula Firewall - это ошибка, связанная с разными уровнями privacy источников данных.
F1 творит чудеса
 
Цитата
Максим Зеленский написал:
Ну классика же.
Блин в окошках про файервол ничего не было, потому и попросил показать скрин ошибки в редакторе. Тогда сразу допер.
Вот горшок пустой, он предмет простой...
 
или так - только в настройках файла
F1 творит чудеса
 
Не поверите, теперь выходит другая ошибка. Я точно должен только путь поменять?
 
Как называется лист в выгрузке?
Вот горшок пустой, он предмет простой...
 
Лист 1.
А вот мой путь к файлу:
C:\Desktop\Отчеты стандартные\PowerQuery\отчет1.xlsx
Изменено: Darkhan - 03.08.2018 13:00:15
 
Уже раз 20 или даже больше проделываю данную процедуру. и путь меняю и название меняю, ничего не выходит, к большому сожалению.
 
Цитата
Darkhan написал: Лист 1.
А как называется лист в последнем высланном вами примере отчета?
Надеюсь намека достаточно, что лист должен называться также как и в примере? Либо лезьте в код и меняйте название листа ручками. Обратите внимание, что PQ язык чувствительный к регистру, а значит лист должен строго называться именно также как в примере.
Изменено: PooHkrd - 03.08.2018 13:56:01
Вот горшок пустой, он предмет простой...
 
а я высылал пример отчета, где вообще нет названия листа.  :(
а какая из строк в коде, отвечает за название листа?
Я тут его не вижу:
Код
let
    Source = FullPathAndSheetName,
    DataWithOutline = Source{0}[DataWithOutline],
    #"Другие удаленные столбцы" = Table.SelectColumns(DataWithOutline,{"outlineLevel", "Column2", "Column3"}),
    #"Удаленные верхние строки" = Table.Skip(#"Другие удаленные столбцы",11),
    #"Строки с примененным фильтром1" = Table.SelectRows(#"Удаленные верхние строки", each ([Column2] <> null and [Column2] <> "Итог")),
    #"Добавлен пользовательский объект" = Table.AddColumn(#"Строки с примененным фильтром1", "Продукт", each if [outlineLevel] = 1 then [Column2] else null),
    #"Заполнение вниз" = Table.FillDown(#"Добавлен пользовательский объект",{"Продукт"}),
    #"Строки с примененным фильтром" = Table.SelectRows(#"Заполнение вниз", each ([Продукт] <> [Column2])),
    #"Переименованные столбцы" = Table.RenameColumns(#"Строки с примененным фильтром",{{"Column2", "Покупатель"}, {"Column3", "Количество"}}),
    #"Переупорядоченные столбцы" = Table.ReorderColumns(#"Переименованные столбцы",{"outlineLevel", "Продукт", "Покупатель", "Количество"}),
    #"Удаленные столбцы1" = Table.RemoveColumns(#"Переупорядоченные столбцы",{"outlineLevel"})
in
    #"Удаленные столбцы1"
Изменено: Darkhan - 03.08.2018 23:47:59
 
Есть там название, нужно просто в левый нижний угол курсор навести на вертикальную черточку и вправо её потянуть. Это одна из особенностей выгрузок из 1С. Чтобы людям легче жилось.
З.Ы. Исправьте свое предыдущее сообщение. Код принято обрамлять в тег CODE, для этого выделите текст и нажмите кнопку <..> на панели редактирования сообщения.
А название листа упоминается в запросе с названием FullPathAndSheetList, который уже является источником для того, код которого указан выше.
Код
let
    Source = ExcelWorksheetsRowOutlines(FullPath, {"TDSheet"})
in
    Source
Изменено: PooHkrd - 03.08.2018 14:26:16
Вот горшок пустой, он предмет простой...
 
Раньше тоже мучился с группировками в 1С, а оказывается их просто в настройках отчета 1С нужно убрать. А те поля что там были выбрать в "Дополнительные поля", размещение - "в отдельнЫХ колонках" и не забыть поставить галку "Выводить детальные записи".
Группировок вообще не должно быть!!!
Приложил скрин из 1С окна настроек стандартного отчета. Чтобы увидеть закладку "Дополнительные поля", нужно поставить галку "Расширенная настройка".

Также после сохранения такого отчета в формате .xlsx, нужно данный файл открыть в Excel и, ничего не меняя, просто сохранить в самом Excel (лучше 2 раза). Можно даже увидеть, что размер файла изменится. У меня PQ без данной операции не проглатывает 1С-кие отчеты.
 
Тут не нужно ничего изобретать, то что вы просите можно сделать в 1С через расширенные настройки далее заходите в Дополнительные поля выбираете что вам нужно ставите в столбце размещение в отдельной колонке и Положение -После группировки и вуаля ваш отчёт готов, не нужны ни макросы ничего.
Если не понятно пишите сообщение покажу это всё элементарно.
 
VasiliePavlov, Александр L, коллеги, если бы вы прочитали всю ветку внимательно, то увидели бы, что Darkhan получает отчеты от третьих лиц, на которых влияния не имеет. Поэтому приходится работать с тем что есть.
Ну, и плюс мне было все таки применить функцию Максима в деле, а то все руки не доходили.  8)
Цитата
VasiliePavlov написал:
У меня PQ без данной операции не проглатывает 1С-кие отчеты.
Начиная с версии 1С:Предприятие 8.3 (8.3.10.2561) выгрузки из 1С в формате xlsx проглатываются PQ без ошибок. Если кто выгружает из более старых версий, то ошибка есть, да. Подозреваю что пользователи PQ и PBI все таки достучались до небес и 1С вместо старой xml-схемы файла начали выгружать в новой.
Изменено: PooHkrd - 03.08.2018 15:42:30
Вот горшок пустой, он предмет простой...
 
Цитата
Александр L написал:
Если не понятно пишите сообщение покажу это всё элементарно.
не торопитесь. Всё сильно зависит от конкретной 1С. У меня, например, 8.2 и достаточно переписанная. Половины того, о чем вы говорите, там просто нет или заблочено или ещё что-нибудь. Доп.поле ставится только к тому полю, которое есть в группировке.
Например, не подскажете, куда делась Номенклатурная группа?
F1 творит чудеса
 
Максим  а снизу нет галочек , обычно когда программу переписывают снизу прячут параметры?
А у вас они вообще скрыли очень нужные функции.Я не программист но у меня в трёх компаниях где я работал расширенные параметры всегда были, очень удобная штука.
 
Александр L, не-а. Нету галочек. Я ж "не первый день на водном транспорте", я её первым делом ищу. Так шта консоль запросов - наше всё ;)
F1 творит чудеса
 
Цитата
Денис К написал: оперативная задача
насчёт основной шапки таблицы не заморачивалась... но оперативно - делала как-то так... потом copy-paste ручками под нужную шапку можете... у меня просто с шапкой проблем не было...
Принцип: Индексация с разницей в единицу и Join шапок по индексу на следующую строку. Потом FillDown постоты по строкам добавленного столбца.
Условие: задать Имя диапазона Таблицы (видно в Диспетчере имён).
ОГРАНИЧЕНИЯ: 1) подшапка - 1 строка, 2) разбор и выравнивание главной шапки не учтены (во вложенном файле)
Цитата
Денис К написал: во вложении исходный файл - ровно такой, каким мне его выдает 1С.
на основе ТЗ из #9... пока не осилю перечитать всю ветку
Код
let  
    Source = Excel.CurrentWorkbook(){[Name="tbl"]}[Content],  
    #"Changed Type" = Table.TransformColumnTypes(Source,{{"Column1", type text}, {"Column2", type text}, {"Column3", type any}, {"Column4", type any}, {"Column5", type any}}),  
    #"Removed Columns" = Table.RemoveColumns(#"Changed Type",{"Column3"}),       
      
    //таблица  
    indexed = Table.AddIndexColumn(#"Removed Columns" , "rowId", 1),  
    indexed2 = Table.AddIndexColumn(indexed,"till", 2),  
        baseKeyed = Table.AddKey(indexed2,{"rowId"},false),  
  
    //отбор шапок (промежуточных)  
    heads = Table.SelectRows(indexed2, each [Column2]=null ),    
    //переименовать интересующие столбцы, чтобы исключить дубли названий столбцов при объединении и последующем раскрытии JoinColumn      
    headss = Table.RenameColumns(heads, {{"Column1","base"}, {"till","till_2"}}, MissingField.Ignore),      
        headsKeyed = Table.AddKey(headss,{"till_2"},false),  
  
    // спустить шапки в доп столбец на 1-й row  
    jn1 = Table.AddJoinColumn(baseKeyed, "rowId", headsKeyed  , "till_2","nx"),  
    #"Expanded nx" = Table.ExpandTableColumn(jn1, "nx", {"base"}, {"nx.base"}),  
  
    //отфильтровать Column2 по null - т.е. убрать строки с шапками  
    #"Filtered Rows" = Table.SelectRows(#"Expanded nx", each ([Column2] <> null)),  
  
    //распространить шапки в доп. столбце на пустоты  
    tbl=Table.FillDown( #"Filtered Rows" ,{"nx.base"}),  
  
    //удалить пользовательские столбцы (созданные для индексации)  
    #"Removed Columns1" = Table.RemoveColumns(tbl,{"rowId", "till"})  
  
in  
#"Removed Columns1" 
Изменено: JeyCi - 05.08.2018 20:10:43
чтобы не гадать на кофейной гуще, кто вам отвечает и после этого не совершать кучу ошибок - обратитесь к собеседнику на ВЫ - ответ на ваш вопрос получите - а остальное вас не касается (п.п.п. на форумах)
 
Доброе утро всем!
Хочу поблагодарить PooHkrd за вашу терпимость. Понял все с отдохнувшей головой. Про данную особенность 1C выгрузки не подозревал :)
Максим Зеленский вам тоже спасибо за то, что вы придумали данную функцию.
Данный инструмент упростит мне работу. Я понял, что нужно продолжать изучать PowerQuery.
Когда знаешь, все действительно просто.
Изменено: Darkhan - 06.08.2018 10:49:20
 

в дополнение к #58 - можно ещё проще (без индексов)... и шапку дописать в конце (начиная с 9-й строки):

Код
let
    Source = Excel.CurrentWorkbook(){[Name="tbl"]}[Content],
    #"Changed Type" = Table.TransformColumnTypes(Source,{{"Column1", type text}, {"Column2", type text}, {"Column3", type any}, {"Column4", type any}, {"Column5", type any}}),   
    head_away = Table.RemoveRows(#"Changed Type", 0, 2),
    newcol = Table.AddColumn(head_away, "Column6", each if [Column2]=null then [Column1] else null),
    filled=Table.FillDown(newcol, {"Column6"}),    
    #"Filtered Rows" = Table.SelectRows(filled , each ([Column2] <> null)),
    #"Filtered Rows1" = Table.SelectRows(#"Filtered Rows", each ([Column2] <> "ИТОГО:")),    
    n1=Table.Transpose(Table.FromList({"Дата", "Документ", "NOT", "Кол-во",  "Цена", "Номенклатура"})),    //УКАЗАТЬ ШАПКУ ! столбцы для удаления пометить любыми словами (потом по ним удалить)
    n2=Table.Combine({n1,#"Filtered Rows1"}),
    #"Promoted Headers" = Table.PromoteHeaders(n2),    
    #"Removed Columns" = Table.RemoveColumns(#"Promoted Headers" ,{"NOT"}) 
in
#"Removed Columns"

работает на именованном диапазоне таблицы tbl (как и #58)
для файла из #9
Изменено: JeyCi - 06.08.2018 13:02:06
чтобы не гадать на кофейной гуще, кто вам отвечает и после этого не совершать кучу ошибок - обратитесь к собеседнику на ВЫ - ответ на ваш вопрос получите - а остальное вас не касается (п.п.п. на форумах)
Страницы: Пред. 1 2 3 След.
Наверх