Добрый всем день, необходимо сложить две строки в обработке которая выгружает документы "Поступление товаров и услуг" вот эта обработка выводит ячейки сумму и суммуНДС, необходимо их сложить чтобы получить суммуСНДС, помогите как это сделать (см. скриншот в нем все подробно описал). При лагаю во втором сообщении код обработки.
Прикрепленные файлы:
По теме из базы знаний
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
Более детально рассмотрела обработку. Основные мысли:
1. В обходе результата запроса Вам не нужен счет 19 (НДС), потому что суммы с НДС берутся из табличной части документа.
2. В части циклов по табличным частям делаются проверки на совпадение с полем "Сумма" результата запроса, а в другой части циклов такой проверки нет. К чему это приводит - например, есть цикл по услугам (в котором нет проверки). То есть в любом случае берутся данные по цене из первой строки табличной части, но при этом дальше сумма - это сумма из результата запроса. К чему это приводит? Например, в документе могут быть две строки с одинаковой услугой, но с разными ценами. При существующем коде в первой строке будет сумма по проводке (например, 100), и цена из первой строки (100), во второй же строке сумма по проводке, например, 200, но цена опять будет 100. То есть это неправильно. Далее после формирования всей таблицы значений строки сворачиваются, а поскольку цены были одинаковыми, хоть это и неправильно, то эти две строки так и свернутся в одну.
3. В тех циклах, где все же производится проверка на соответствие суммы из результата запроса пишется "Если (Стр.Сумма - Стр.СуммаНДС) = РезультатЗапроса.Сумма ИЛИ (Стр.Сумма = РезультатЗапроса.Сумма)", но дальше в сумму записывается сумма из соответствующей колонки документа. Это будет работать правильно только в том случае, если документ учитывает НДС, но не стоит признак "сумма включает НДС". Если же флажок "Сумма включает НДС" включен, тогда в колонке сумма стоит уже сумма с НДС. Это все тоже нужно обрабатывать.
4. Также, видимо, нужно отказаться от сворачивания полученной таблицы значений перед загрузкой в файл Эксель, поскольку действительно в документе могут быть несколько строк с одинаковыми услугами и даже с одинаковой ценой. Но из-за того, что Вы не хотите в итоге видеть эти данные в сгруппированном виде, сворачивание таблицы значений не будет удовлетворять условию Вашей задачи.
5. Ну, и, конечно, было бы неплохо переписать запрос таким образом, чтобы в самом запросе уже были получены данные, удовлетворяющие Вашему первому условию в обходе результата запроса. И, хорошо бы также в запросе преобразовывать значения NULL (в Вашем случае, наверное, просто желательно).
6. По основным моментам это все. Вам этой информации должно хватить. Если же нет - видимо, правильным будет эту задачу выложить на биржу заказов.
1. В обходе результата запроса Вам не нужен счет 19 (НДС), потому что суммы с НДС берутся из табличной части документа.
2. В части циклов по табличным частям делаются проверки на совпадение с полем "Сумма" результата запроса, а в другой части циклов такой проверки нет. К чему это приводит - например, есть цикл по услугам (в котором нет проверки). То есть в любом случае берутся данные по цене из первой строки табличной части, но при этом дальше сумма - это сумма из результата запроса. К чему это приводит? Например, в документе могут быть две строки с одинаковой услугой, но с разными ценами. При существующем коде в первой строке будет сумма по проводке (например, 100), и цена из первой строки (100), во второй же строке сумма по проводке, например, 200, но цена опять будет 100. То есть это неправильно. Далее после формирования всей таблицы значений строки сворачиваются, а поскольку цены были одинаковыми, хоть это и неправильно, то эти две строки так и свернутся в одну.
3. В тех циклах, где все же производится проверка на соответствие суммы из результата запроса пишется "Если (Стр.Сумма - Стр.СуммаНДС) = РезультатЗапроса.Сумма ИЛИ (Стр.Сумма = РезультатЗапроса.Сумма)", но дальше в сумму записывается сумма из соответствующей колонки документа. Это будет работать правильно только в том случае, если документ учитывает НДС, но не стоит признак "сумма включает НДС". Если же флажок "Сумма включает НДС" включен, тогда в колонке сумма стоит уже сумма с НДС. Это все тоже нужно обрабатывать.
4. Также, видимо, нужно отказаться от сворачивания полученной таблицы значений перед загрузкой в файл Эксель, поскольку действительно в документе могут быть несколько строк с одинаковыми услугами и даже с одинаковой ценой. Но из-за того, что Вы не хотите в итоге видеть эти данные в сгруппированном виде, сворачивание таблицы значений не будет удовлетворять условию Вашей задачи.
5. Ну, и, конечно, было бы неплохо переписать запрос таким образом, чтобы в самом запросе уже были получены данные, удовлетворяющие Вашему первому условию в обходе результата запроса. И, хорошо бы также в запросе преобразовывать значения NULL (в Вашем случае, наверное, просто желательно).
6. По основным моментам это все. Вам этой информации должно хватить. Если же нет - видимо, правильным будет эту задачу выложить на биржу заказов.
(104) А Вы посмотрите, что там дальше происходит. Если забирать НДС-сный счет, тогда будет большая путаница по данным. Разве там есть данные по номенклатуре, на НДС-сном счету? и будут у Вас в таблице кривые и косые данные - с одной стороны сумма без НДС будет включать данные по НДСу, а дальше уж дофантазируйте сами.
(106) Я просто попробовала включить соображение - а что, собственно, хочет видеть бухгалтер как пользователь этой обработки. Потому и пришла к подобным выводам. Ну а советы на шесть пунктов - раз уж взялась смотреть, нужно было обсмотреть добросовестно. Иначе браться не стоило. Вы же знаете, что заказчик не всегда высказывает так, как хотел бы видеть на самом деле.
Дополнительно по запросу
| СчетКт.Родитель.Код = ""60""
| ИЛИ СчетКт.Родитель.Родитель.Код = ""76""
| ИЛИ СчетКт.Родитель.Код = ""76""
| ИЛИ СчетКт.Родитель.Код = ""97"",
Лучше заменить на сравнение по ссылке на счет
| СчетКт В (&СчетаКт)
Аналогично с
Если РезультатЗапроса.СчетДт.Родитель.Код = "10" ИЛИ РезультатЗапроса.СчетДт.Родитель.Родитель.Код = "10" ИЛИ РезультатЗапроса.СчетДт.Родитель.Код = "20" ИЛИ РезультатЗапроса.СчетДт.Код = "25" ИЛИ РезультатЗапроса.СчетДт.Код = "26" Тогда
Добавить разыменование в запросе
Сформулировать задачу - переписать полностью запрос и упростить вывод в excel :)
| СчетКт.Родитель.Код = ""60""
| ИЛИ СчетКт.Родитель.Родитель.Код = ""76""
| ИЛИ СчетКт.Родитель.Код = ""76""
| ИЛИ СчетКт.Родитель.Код = ""97"",
Лучше заменить на сравнение по ссылке на счет
| СчетКт В (&СчетаКт)
Аналогично с
Если РезультатЗапроса.СчетДт.Родитель.Код = "10" ИЛИ РезультатЗапроса.СчетДт.Родитель.Родитель.Код = "10" ИЛИ РезультатЗапроса.СчетДт.Родитель.Код = "20" ИЛИ РезультатЗапроса.СчетДт.Код = "25" ИЛИ РезультатЗапроса.СчетДт.Код = "26" Тогда
Добавить разыменование в запросе
Сформулировать задачу - переписать полностью запрос и упростить вывод в excel :)
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот