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

Хранилище

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

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



> Получить сумма регистра текущего док-та          
bereznoy Подменю пользователя
сообщение 30.12.11, 23:59
Сообщение #1

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

Док-т реализация товаров и услуг, проводиться в управленческом учете, затем в бухгалтерском (разрыв по времени примерно месяц,но думаю не столь важно), мне необходимо что бы в журнале документов реализации товаров и услуг в колонке "Сумма БУ" отображалась сумма проводок соотвествующей строки

Дабы не злить здешний народ, сам пытался почти 5 дней получить сумму это и результат нулевой, по логике обратиться надо запросом к регистру бухгалтерии получить итог сумм по проводкам текущего документа, вот что получилось у меня, подскажите что не так
Процедура ДокументСписокПриВыводеСтроки(Элемент, ОформлениеСтроки, ДанныеСтроки)
    // Вставить содержимое обработчика.
     Запрос=Новый Запрос;
     Запрос.Текст = "ВЫБРАТЬ
     |    ХозрасчетныйОбороты.СуммаОборот КАК СуммаБУ
     |ИЗ
     |    РегистрБухгалтерии.Хозрасчетный.Обороты КАК ХозрасчетныйОбороты";
     РезультатЗапроса=запрос.Выполнить().Выбрать();
     РезультатЗапроса.Следующий();

    
    ОформлениеСтроки.Ячейки.СуммаБУ.ОтображатьТекст = Истина;
    ОформлениеСтроки.Ячейки.СуммаБУ.УстановитьТекст(РезультатЗапроса.СуммаБУ);
    
КонецПроцедуры


Signature
Ковыряю 1С 8.2.14.528 конфигурация УТП ред. 1.2.1.3
1С 8.3 (8.3.1.531) конфиг УТ 2.3.16.1
1С 7.7 Торговля+Склад

logist Подменю пользователя
сообщение 31.12.11, 0:15
Сообщение #2

Про1С-ник
Иконка группы
Квалифицированный бухгалтерГений телепатии и социального моделированияЗа заслуги на форуме в 2010 годуМодератору Про1С (за заслуги в 2011 году)
Группа: Местный
Сообщений: 9564
Из: Kharkiv, UA
Спасибо сказали: 2536 раз
Рейтинг: 0

Ну типа запрос хороший, только откуда он знает что выбирать надо какой-то конкретный документ...

Ну и собсно реализация задачи ужасна. производительность упадет в разы.


Signature
Личные бесплатные консультации не даю, для этого есть форум!

bereznoy Подменю пользователя
сообщение 31.12.11, 0:18
Сообщение #3

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

Цитата(logist @ 31.12.11, 0:15) *
Ну типа запрос хороший, только откуда он знает что выбирать надо какой-то конкретный документ...

Ну и собсно реализация задачи ужасна. производительность упадет.

А каким способом можно сделать что б компьютер при открытии журнала не выполнял 100500 запросов и при этой не открывая документ видеть общую сумму по проводкам? (Может при проведении документа помещать суммы проводок в реквизит, а потом его уже отображать при выводе строки?)

По запросу я так понимаю надо указать параметр на текущий документ
Процедура ДокументСписокПриВыводеСтроки(Элемент, ОформлениеСтроки, ДанныеСтроки)
    // Вставить содержимое обработчика.          
    Запрос=Новый Запрос;                        
    Запрос.УстановитьПараметр("СсылкаНаТекущийДокумент",ЭлементыФормы.ДокументСписок.ТекущиеДанные.Ссылка);
    Запрос.Текст = "ВЫБРАТЬ
     |    ХозрасчетныйОбороты.СуммаОборот КАК СуммаБУ
     |ИЗ
     |    РегистрБухгалтерии.Хозрасчетный.Обороты КАК ХозрасчетныйОбороты";
     РезультатЗапроса=запрос.Выполнить().Выбрать();
     РезультатЗапроса.Следующий();

    
    ОформлениеСтроки.Ячейки.СуммаБУ.ОтображатьТекст = Истина;
    ОформлениеСтроки.Ячейки.СуммаБУ.УстановитьТекст(РезультатЗапроса.СуммаБУ);
    
КонецПроцедуры


Signature
Ковыряю 1С 8.2.14.528 конфигурация УТП ред. 1.2.1.3
1С 8.3 (8.3.1.531) конфиг УТ 2.3.16.1
1С 7.7 Торговля+Склад

logist Подменю пользователя
сообщение 31.12.11, 0:24
Сообщение #4

Про1С-ник
Иконка группы
Квалифицированный бухгалтерГений телепатии и социального моделированияЗа заслуги на форуме в 2010 годуМодератору Про1С (за заслуги в 2011 году)
Группа: Местный
Сообщений: 9564
Из: Kharkiv, UA
Спасибо сказали: 2536 раз
Рейтинг: 0

Цитата(bereznoy @ 31.12.11, 0:18) *
(Может при проведении документа помещать суммы проводок в реквизит, а потом его уже отображать при выводе строки?)

Ну даsmile.gif

Цитата(bereznoy @ 31.12.11, 0:18) *
По запросу я так понимаю надо указать параметр на текущий документ

И тут верно, только параметр еще и в тексте запроса надо использовать.

Ну и
| СУММА(ХозрасчетныйОбороты.СуммаОборот)


Signature
Личные бесплатные консультации не даю, для этого есть форум!

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

bereznoy Подменю пользователя
сообщение 31.12.11, 0:40
Сообщение #5

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

Цитата(logist @ 31.12.11, 0:24) *
Ну даsmile.gif


И тут верно, только параметр еще и в тексте запроса надо использовать.

Ну и
| СУММА(ХозрасчетныйОбороты.СуммаОборот)

В отладчике посмотрел ссылка на документ текущий остается прежней при выполнении процедуры по следующим строкам 19000000.gif


Signature
Ковыряю 1С 8.2.14.528 конфигурация УТП ред. 1.2.1.3
1С 8.3 (8.3.1.531) конфиг УТ 2.3.16.1
1С 7.7 Торговля+Склад

logist Подменю пользователя
сообщение 31.12.11, 0:59
Сообщение #6

Про1С-ник
Иконка группы
Квалифицированный бухгалтерГений телепатии и социального моделированияЗа заслуги на форуме в 2010 годуМодератору Про1С (за заслуги в 2011 году)
Группа: Местный
Сообщений: 9564
Из: Kharkiv, UA
Спасибо сказали: 2536 раз
Рейтинг: 0

    Запрос.УстановитьПараметр("СсылкаНаТекущийДокумент",ДанныеСтроки.Ссылка);



Цитата(bereznoy @ 31.12.11, 0:40) *
В отладчике посмотрел ссылка на документ текущий остается прежней при выполнении процедуры по следующим строкам 19000000.gif

Разумеется, Вы же тем кодом передаете туда текущую позицию курсора.


Signature
Личные бесплатные консультации не даю, для этого есть форум!

Ardi Подменю пользователя
сообщение 31.12.11, 2:25
Сообщение #7

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

"Сумма БУ" - несколько бессмысленная цифра.
Осмысленная - это оборот по определённым счетам.

Например
Запрос=Новый Запрос;
     Запрос.Текст = "ВЫБРАТЬ
    СУММА(Хозрасчетный.Сумма) КАК Сумма
ИЗ
    РегистрБухгалтерии.Хозрасчетный КАК Хозрасчетный
ГДЕ
    Хозрасчетный.Регистратор = &Регистратор
    И Хозрасчетный.СчетКт = &СчетКт";

  Запрос.УстановитьПараметр("СчетКт",Тут281Счет);


Ну и тормоза дополнительные запрос даст.

Сообщение отредактировал Ardi - 31.12.11, 2:23


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

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

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

Решил сделать так, что б при проведении сумма проводок по БУ присваивалась реквизиту, а в списке документов просто указал чтоб отображало данный реквизит, запрос вставил в конце процедуры проведения обработки, только запрос не получает сумму

Запрос=Новый Запрос;                        
Запрос.Текст = "ВЫБРАТЬ
               |    СУММА(Хозрасчетный.Сумма) КАК Сумма
               |ИЗ
               |    РегистрБухгалтерии.Хозрасчетный КАК Хозрасчетный
               |ГДЕ
               |    Хозрасчетный.Регистратор = &Регистратор
               |    И Хозрасчетный.СчетКт = &СчетКт";

  Запрос.УстановитьПараметр("СчетКт",ПланыСчетов.Хозрасчетный.ТоварыВРозничнойТорговлеВПродажныхЦенахНТТ);
  Запрос.УстановитьПараметр("Регистратор",ЭтотОбъект.Ссылка);
   РезультатЗапроса=запрос.Выполнить().Выбрать();
   РезультатЗапроса.Следующий();
   СуммаБух = РезультатЗапроса.Сумма;


Signature
Ковыряю 1С 8.2.14.528 конфигурация УТП ред. 1.2.1.3
1С 8.3 (8.3.1.531) конфиг УТ 2.3.16.1
1С 7.7 Торговля+Склад

logist Подменю пользователя
сообщение 01.01.12, 14:37
Сообщение #9

Про1С-ник
Иконка группы
Квалифицированный бухгалтерГений телепатии и социального моделированияЗа заслуги на форуме в 2010 годуМодератору Про1С (за заслуги в 2011 году)
Группа: Местный
Сообщений: 9564
Из: Kharkiv, UA
Спасибо сказали: 2536 раз
Рейтинг: 0

Цитата(bereznoy @ 01.01.12, 12:57) *
только запрос не получает сумму

При выполнении ОбработкаПроведения объекта в базе нету, т.е. записей с таким регистратором в регистре не существует, они появятся после фактической записи документа.
Вам надо получить эту цифру не запросом к регистру, а из данных участвующих в обработке проведения.

Короче сделайте вот что:
В модуле в процедуре ДвиженияПоРегистрамРегл добавьте одну строчку
    СуммаБух = ТаблицаПоТоварам.Итог("ПроводкиСуммаСНДСРегл") + ТаблицаПоКомплектам.Итог("СуммаПродажная") + ТаблицаПоУслугам.Итог("ПроводкиСуммаСНДСРегл") + ТаблицаПоТаре.Итог("ПроводкиСуммаСНДСРегл");

и все.


Signature
Личные бесплатные консультации не даю, для этого есть форум!

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

bereznoy Подменю пользователя
сообщение 01.01.12, 17:29
Сообщение #10

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

Цитата(logist @ 01.01.12, 14:37) *
При выполнении ОбработкаПроведения объекта в базе нету, т.е. записей с таким регистратором в регистре не существует, они появятся после фактической записи документа.
Вам надо получить эту цифру не запросом к регистру, а из данных участвующих в обработке проведения.

Короче сделайте вот что:
В модуле в процедуре ДвиженияПоРегистрамРегл добавьте одну строчку
    СуммаБух = ТаблицаПоТоварам.Итог("ПроводкиСуммаСНДСРегл") + ТаблицаПоКомплектам.Итог("СуммаПродажная") + ТаблицаПоУслугам.Итог("ПроводкиСуммаСНДСРегл") + ТаблицаПоТаре.Итог("ПроводкиСуммаСНДСРегл");

и все.

ТаблицаПоТоварам.Итог("ПроводкиСуммаСНДСРегл")
у меня этим выражением получает суммарное число по регистру равное сумме документа, а не сумме по проводкам

мои проводки по списанию вычисляются в процедуре "Процедура ДвижениеПартийТоваров", т.е. как я понимаю там формируется проводка


Signature
Ковыряю 1С 8.2.14.528 конфигурация УТП ред. 1.2.1.3
1С 8.3 (8.3.1.531) конфиг УТ 2.3.16.1
1С 7.7 Торговля+Склад

bereznoy Подменю пользователя
сообщение 01.01.12, 23:01
Сообщение #11

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

Вот сам допетрил, так получаю итоговую сумму по проводкам регистра бухгалтерии, но насколько она надежна вплане что мне повлиять нанеправильное отображение суммы

СуммаБух = ПроводкиБУ.ЭтотОбъект.Итог("Сумма");


Signature
Ковыряю 1С 8.2.14.528 конфигурация УТП ред. 1.2.1.3
1С 8.3 (8.3.1.531) конфиг УТ 2.3.16.1
1С 7.7 Торговля+Склад

logist Подменю пользователя
сообщение 01.01.12, 23:27
Сообщение #12

Про1С-ник
Иконка группы
Квалифицированный бухгалтерГений телепатии и социального моделированияЗа заслуги на форуме в 2010 годуМодератору Про1С (за заслуги в 2011 году)
Группа: Местный
Сообщений: 9564
Из: Kharkiv, UA
Спасибо сказали: 2536 раз
Рейтинг: 0

Это сумма всех проводок. Вам же нужно только те у которых по кредиту нужный счет.
И где Вы вставляете этот код?

Вам надо что-то типа такого
    Если Не Отказ И ОтражатьВБухгалтерскомУчете Тогда
        БухПроводки = Движения.Хозрасчетный.Выгрузить(,"СчетКт,Сумма");
        БухПроводки.Свернуть("СчетКт","Сумма");
        Результат = БухПроводки.Найти(ПланыСчетов.Хозрасчетный.ТоварыВРозничнойТорговлеВПродажныхЦенахНТТ,"СчетКт");
        Если Результат <> Неопределено Тогда
            СуммаБух = Результат.Сумма;
        Иначе
            СуммаБух = 0;
        КонецЕсли;
    КонецЕсли;


Signature
Личные бесплатные консультации не даю, для этого есть форум!

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

bereznoy Подменю пользователя
сообщение 01.01.12, 23:38
Сообщение #13

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

Цитата(logist @ 01.01.12, 23:27) *
Это сумма всех проводок. Вам же нужно только те у которых по кредиту нужный счет.
И где Вы вставляете этот код?


Код вставляю там где Вы говорили, все работает как надо, проводку по расчетам с контрагентами, вроде 361 счет убрал, там только по материальным счетам формируется,
что впринцыпе и надо было изначально, думаю тогда оставлю вариант свой, который Вы мне подсказали как сделать, жму спасибо


Signature
Ковыряю 1С 8.2.14.528 конфигурация УТП ред. 1.2.1.3
1С 8.3 (8.3.1.531) конфиг УТ 2.3.16.1
1С 7.7 Торговля+Склад

Batchir Подменю пользователя
сообщение 01.01.12, 23:44
Сообщение #14

Живет на форуме
Иконка группы
Группа: Команда
Сообщений: 3568
Из: Киев
Спасибо сказали: 1427 раз
Рейтинг: 0

Ну не знаю, я бы всё таки сделал в списке документов в процедуре "ПриПолученииДанных" обращение к БД и отображал бы в ячейке нужную инфу.
При грамотном написании кода падения в производительности не заметны (не раз проделывал подобную операцию)

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


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

 

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