Форум программистов, компьютерный форум, киберфорум
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.61/46: Рейтинг темы: голосов - 46, средняя оценка - 4.61
0 / 0 / 0
Регистрация: 28.07.2012
Сообщений: 27
1

Чистов: нужно добавить сумму в форму списка расходных накладных

03.08.2012, 22:17. Показов 8509. Ответов 8
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Изначально в форме списка: дата, номер, контрагент.

Создаем форму На форме у нас в реквизитах динамический список.
Идем в его свойства, создаем произвольный запрос.
См. приложенный файл.

Чистов в видеокурсе сделал так создает вложенный запрос, в нем получает итоговую сумму документа.
Затем связывает два запроса по ссылке на один и тот же документ.

Я что-то подумал - а зачем? Взял и просто изменил запрос:

1C
1
2
3
4
5
6
7
8
ВЫБРАТЬ
    Ссылка.Номер,
    Ссылка.Дата,
    Ссылка.Контрагент,
    СУММА(Сумма)
ИЗ
    Документ.Приходная.Товары
СГРУППИРОВАТЬ ПО Ссылка
Запрос стал короче, даже чем был. И элегантнее решение, похоже, чем у Чистова.
Но вот меня сомнения взяли - а может я не прав.
Чистов не корежил исходный код в отличие от меня. Он просто сверху кинул еще один запрос,
и добавил еще один реквизит.

Я же покопался в потрохах. В принципе, форма работает.
Не могли бы Вы прокомментировать - как правильнее?
Миниатюры
Чистов: нужно добавить сумму в форму списка расходных накладных  
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
03.08.2012, 22:17
Ответы с готовыми решениями:

Нумерация расходных накладных в 1с 8.2
Помогите пожалуйста - как сделать, чтобы при создании Расходной накладной(РеализацияТоваровУслуг)...

УТ 11. Как добавить колонку на форму списка документа?
В документе РеализацияТоваровУслуг требуется добавить колонку "Менеджер" в форме списка. Ломаю...

Почему не удается добавить реквизит в форму списка?
Здравствуйте добавил новый реквизит на форму элемента справочника (УПП 10.3 ОФ), но почему-то не...

Добавить закладку на форму при выборе из списка
Здраствуйте. Работаю с 1С7.7 (Бухгалтерский Учёт для Украины). Есть справочник ТМЦ (Номенклатура)....

8
2955 / 1767 / 82
Регистрация: 03.11.2011
Сообщений: 8,280
03.08.2012, 22:23 2
Просто
1C
1
2
3
Ссылка.Номер,
    Ссылка.Дата,
    Ссылка.Контрагент,
исчезнут, да и всё

Добавлено через 41 секунду
РегистратураТорпедныхКатеров
1
0 / 0 / 0
Регистрация: 28.07.2012
Сообщений: 27
03.08.2012, 22:32  [ТС] 3
Не понял мысль. У меня все работает, я формой списка доволен, с заданием справился.
Ничего нужного не исчезло.

Добавлено через 3 минуты
Я к чему клоню: ну, в одном же документе мы. Нафига вложенный запрос?
Было: в списке есть данные о табличной части построчно, т.е. товар - сумма.
А общей суммы документа не было. Ну, я взял, да подбил сумму.
0
900 / 877 / 8
Регистрация: 15.03.2012
Сообщений: 2,680
04.08.2012, 14:04 4
1. Ваш, запрос не оптимален. При обращении к реквизитам Номер дата и т.д. на уровне платформы происходит соединение таблиц табличной части и основной таблицы документ.
2. В вашем списке не будут видны документы с пустыми ТЧ.
1
0 / 0 / 0
Регистрация: 28.07.2012
Сообщений: 27
04.08.2012, 14:48  [ТС] 5
У Чистова тоже происходит соединение таблиц вложенного и основного запросов.
Т.е. мой запрос хуже? Такой маленький запрос может быть хуже громоздкой конструкции Чистова?

Это документ расхода товаров, он не может быть с пустой табличной частью.
0
900 / 877 / 8
Регистрация: 15.03.2012
Сообщений: 2,680
04.08.2012, 15:01 6
Цитата Сообщение от БюроПиявок Посмотреть сообщение
У Чистова тоже происходит соединение таблиц вложенного и основного запросов.
Покажите запрос Чистова.
Цитата Сообщение от БюроПиявок Посмотреть сообщение
Т.е. мой запрос хуже? Такой маленький запрос может быть хуже громоздкой конструкции Чистова?
На уровне СУБД ваш маленький превращается в большой.
Цитата Сообщение от БюроПиявок Посмотреть сообщение
Это документ расхода товаров, он не может быть с пустой табличной частью.
Пользователь, ввел шапку, нажал сохранить, и пошел обедать. А документ пропал...
1
0 / 0 / 0
Регистрация: 28.07.2012
Сообщений: 27
04.08.2012, 15:19  [ТС] 7
1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
ВЫБРАТЬ
    ДокументПриходная.Ссылка,
    ДокументПриходная.ПометкаУдаления,
    ДокументПриходная.Номер,
    ДокументПриходная.Дата,
    ДокументПриходная.Проведен,
    ДокументПриходная.Контрагент,
    ДокументПриходная.Договор,
    ДокументПриходная.МоментВремени,
    ВложенныйЗапрос.Сумма
ИЗ
    Документ.Приходная КАК ДокументПриходная
        ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
            СУММА(ПриходнаяТовары.Сумма) КАК Сумма,
            ПриходнаяТовары.Ссылка КАК Ссылка
        ИЗ
            Документ.Приходная.Товары КАК ПриходнаяТовары
        
        СГРУППИРОВАТЬ ПО
            ПриходнаяТовары.Ссылка) КАК ВложенныйЗапрос
        ПО ДокументПриходная.Ссылка = ВложенныйЗапрос.Ссылка
Картинка - ну, просто для наглядности. Звездочки - это связь. И перетащить ВложенныйЗапрос.Сумма в поля.
Миниатюры
Чистов: нужно добавить сумму в форму списка расходных накладных  
0
0 / 0 / 0
Регистрация: 28.07.2012
Сообщений: 27
04.08.2012, 15:34  [ТС] 8
Тут ведь еще один нюанс есть - я не знаю, как замерить производительность.
Есть динамический список, в нем произвольный запрос.
В запросе точку останова поставить не могу.
Как померить-то?
0
900 / 877 / 8
Регистрация: 15.03.2012
Сообщений: 2,680
04.08.2012, 17:12 9
Давайте разбираться.
Ваш запрос:
ВЫБРАТЬ
Ссылка.Номер,
Ссылка.Дата,
Ссылка.Контрагент,
СУММА(Сумма)
ИЗ
Документ.Приходная.Товары
СГРУППИРОВАТЬ ПО Ссылка
Платформой будет превращен в:
1C
1
2
3
4
5
6
7
8
9
ВЫБРАТЬ
    Документ.Номер,
    Документ.Дата,
    Документ.Контрагент,
    СУММА(ТЧ.Сумма)
ИЗ
    Документ.Приходная.Товары КАК ТЧ
    ЛЕВОЕ СОЕДИНЕНИЕ Документ.Приходная КАК Документ
СГРУППИРОВАТЬ ПО Документ.Ссылка
Надеюсь это понятно.

Теперь давайте разберем работу Вашего запроса и запроса Чистова на следующем примере.
Допустим есть один документ в котором 50 строк.
Что сделает ваш запрос:
Выберет 50 строк из ТЧ. Выберет 1 строку документа. К каждой из 50 присоединит номер дату и контрагента. Сгруппирует 50 строк в одну.
Что сделает запрос Чистова:
Выберет 1 строку. Выберет 50 строк ТЧ и сгруппирует их. Присоединит к одной строке сумму.

Я думаю понятно какой запрос оптимальнее.

Не знаю когда Чистов делал видео курс, но сейчас подзапрос стоит вынести в виртуальную таблицу.

Добавлено через 3 минуты
Цитата Сообщение от БюроПиявок Посмотреть сообщение
Тут ведь еще один нюанс есть - я не знаю, как замерить производительность.
Замеряйте выполнение запросов в коде, а не в динамическом списке. На вашем примере при небольшом количестве данных вы сильной разницы не увидите. Однако это не означает что нужно использовать не оптимальные решения.
1
04.08.2012, 17:12
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
04.08.2012, 17:12
Помогаю со студенческими работами здесь

нужно добавить в форму елементы которые есть в коде программы
есть исходный код и сама exe программы. нужно сделать саму форму чтобы можно было её компилировать....

Нужно добавить пару полей на форму письма для web-а в девятке
Возникла такая необходимость. С добавлением этих полей на форму письма для "толстого" клиента...

Как передать рассчитанную сумму на форме документа в форму списка?
В документе есть форма документа. В ней в табличной части рассчитывается сумма через Путь к данным:...

Добавить колонку в форму списка документа "Заказ поставщику" УТ11
Вроде бы задача простая, но в чем дело понять не могу. Открываю форму списка документа, редактирую...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru