К списку форумов К списку тем
Регистрация    Правила    Главная форума    Поиск   
Имя: Пароль:
Рекомендовать в новости

Помогите студенту, пожалуйста!

Гость
0 - 06.06.2020 - 14:10
Удаленное обучение, к сожалению, мало добавило знаний.
Помогите, пожалуйста, разобраться с заданием.
Выполнять нужно на ТиС.
Сам запрос сделали. Работает правильно. Печатную форму тоже создали. Препод всё проверил. Сказал, что норм.
Не получается вывести данные отчета на форму.
И не могу разобраться с таблицей значений.

ЗАДАНИЕ
Магазин ведёт учёт продаж и возвратов товара по складам и проектам.
В течение дня возникает необходимость проверить продажи в разрезе некоторых учетных единиц.
Учёт продаж ведётся документами Реализация и РеализацияРозница. Учёт возвратов с помощью документа ВозвратОтПокупателя.
Создайте отчёт, позволяющий учесть продажи по трём выборочным проектам (П1, П2, П3) с группировкой по складам, причём наименования и количество складов зависит от данных, введённых в пользовательском режиме. Результат отчета должен формироваться, с учётом корректирующей величины (Корректировка), вводимой через числовое поле на форме отчета, в таблице значений и выводиться в текстовое поле на форме отчета по следующей формуле.

Продажа П1+П2+Корректировка, Возврат П1+П2, Итог (Продажа П1+П2)-(Возврат П1+П2)+Корректировка
Продажа П3-Корректировка, Возврат П3, Итог (Продажа П3)-(Возврат П3)
Результат ((Продажа П1+П2)-(Возврат П1+П2)+(Продажа П3)-(Возврат П3)-Корректировка)
Наименование столбцов
Продажа первый этаж - для (Продажа П1+П2)
Возврат первый этаж - для (Возврат П1+П2)
Итого первый этаж - для (Итог (Продажа П1+П2)-(Возврат П1+П2))
Продажа второй этаж - для (Продажа П3)
Возврат второй этаж - для (Возврат П3)
Итого второй этаж - для (Итог (Продажа П3)-(Возврат П3))
Всего продаж - для (Результат ((Продажа П1+П2)-(Возврат П1+П2)+(Продажа П3)-(Возврат П3)))

Отчёт должен учитывать продажи только за текущий день, без возможности изменения периода на форме.
Сделайте кнопку, позволяющую обновлять результат в течение дня, без закрытия формы отчета.

Создайте такой же отчёт, с выводом данных в таблицу значений, расположенную на форме.

Создайте печатную форму отчета.

Модуль отчета

Процедура ОтчетКассира()
Перем Запрос, ТекстЗапроса, Таб;
//Создание объекта типа Запрос
Запрос = СоздатьОбъект("Запрос");
ТекстЗапроса =
"//**{ЗАПРОС(ОтчетКассира)
|Период с (ТекущаяДата()) по (ТекущаяДата());
|Обрабатывать НеПомеченныеНаУдаление;
|Реализация = Документ.Реализация.ТекущийДокумент, Документ.РеализацияРозница.ТекущийДокумент;
|ВозвратОтПокупателя = Документ.ВозвратОтПокупателя.ТекущийДокумент;
|Склад = Документ.Реализация.Склад.Наименование, Документ.ВозвратОтПокупателя.Склад.Наименование, Документ.РеализацияРозница.Склад.Наименование;
|Проект = Документ.Реализация.Проект, Документ.ВозвратОтПокупателя.Проект, Документ.РеализацияРозница.Проект;
|Фирма = Документ.ВозвратОтПокупателя.Фирма.Наименование, Документ.Реализация.Фирма.Наименование, Документ.РеализацияРозница.Фирма.Наименование;
|СуммаВозврат = Документ.ВозвратОтПокупателя.Сумма;
|СуммаРеализация = Документ.Реализация.Сумма, Документ.РеализацияРозница.Сумма;
|Функция РеализацияП1 = Сумма(СуммаРеализация) когда(Проект.Наименование = ""П1"");
|Функция РеализацияП2 = Сумма(СуммаРеализация) когда(Проект.Наименование = ""П2"");
|Функция РеализацияП3 = Сумма(СуммаРеализация) когда(Проект.Наименование = ""П3"");
|Функция ВозвратП1 = Сумма(СуммаВозврат) когда(Проект.Наименование = ""П1"");
|Функция ВозвратП2 = Сумма(СуммаВозврат) когда(Проект.Наименование = ""П2"");
|Функция ВозвратП3 = Сумма(СуммаВозврат) когда(Проект.Наименование = ""П3"");
|Группировка Склад;
|"//****ЗАПРОС
;
// Если ошибка в запросе, то выход из процедуры
Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда
Возврат;
КонецЕсли;

// Подготовка к заполнению выходных форм данными запроса
Таб = СоздатьОбъект("Таблица");
Таб.ИсходнаяТаблица("ОтчетКассира");
// Заполнение полей "Заголовок"
Таб.ВывестиСекцию("Заголовок");
Состояние("Заполнение выходной таблицы...");
Таб.Опции(0, 0, Таб.ВысотаТаблицы(), 0);
Пока Запрос.Группировка(1) = 1 Цикл
// Заполнение полей Склад
Таб.ВывестиСекцию("Склад");
КонецЦикла;
// Заполнение полей "Итого"
Таб.ВывестиСекцию("Итого");
// Вывод заполненной формы
Таб.ТолькоПросмотр(1);



Гость
81 - 20.06.2020 - 14:54
76-tutsi > тогда в 77 надо курсы от Ёпрста проводить - вот это было бы познавательно.
и всякие фичи.. например в 77 оператор
а=а/0; - не вызовет исключения (а в 8-ке как?)
82 - 20.06.2020 - 17:13
В средней школе информатику преподают на Pasсal практически ДОСовской.
А дети не могут решить систему уравнений про квас, сколько стоит тара, если 1л кваса стоит 36р, а 1.5л с бут. стоит 65 р.
ps. А ваша 1С вообще никому не нужна, ни 7.7 ни 8.х
Гость
83 - 20.06.2020 - 18:45
82-Шухер > и я о том же..
химеры это всё, эти 77 и 8... ассемблер только православен
84 - 20.06.2020 - 19:12
Цитата:
Сообщение от Сергей Че Посмотреть сообщение
ассемблер только православен
Славься славься ты ассемблер
Гость
85 - 20.06.2020 - 19:19
да и вообще.. Всё программирование - это химера, не стоит на это тратить время... а тем более как способ заработка на жизнь..
кончится завтра липиздричество - и всё...
Гость
86 - 21.06.2020 - 12:30
Цитата:
Сообщение от Сергей Че Посмотреть сообщение
кончится завтра липиздричество - и всё...
Да-да! Вот про липиздричество - это в точку!
Но все-таки нынешний мир очень зависим от программистов. И будет зависеть до тех пор, пока не появится искусственный интеллект, способный заменить программиста.
А дальше уже мы все будем плясать под дудочку искусственного интеллекта.
Гость
87 - 21.06.2020 - 13:00
Читаю сейчас "Сборник задач по программированию в 1С:Предприятие 7.7". Из этого сборника дети и решали задачи. Сборник напечатан на принтере с самом учебном заведении в 2001 году.
Двоякое впечатление. С одной стороны по принципу "у каждой задачи из сборника должно быть решение" узнаю о многих неведомых мне возможностях семерки. С другой стороны - ну это ж уже динозавр какой-то. Кому это нужно?
Многие задачи с ходу решить не могу.
Например не понимаю как сравнить объем продаж за одинаковые периоды разных лет. Текст задачи такой - "Создайте отчет, позволяющий вывести на печать таблицу сравнения объема продаж за одинаковые периоды (месяцы) разных лет. Период отчета должен выбираться на форме.
Создайте аналогичный запрос, выводящий результаты на форму."
Что может подразумеваться под сравнением? Просто вывести на печать таблицу, в которой по горизонтали год, по вертикали месяц?
Задать вопрос некому. Да и не за чем. Но интересно.
88 - 21.06.2020 - 14:28
Цитата:
Сообщение от Сергей Че Посмотреть сообщение
ассемблер только православен
Еретик! Машинные коды - наши альфа и омега!
Гость
89 - 21.06.2020 - 16:49
(87) "Что может подразумеваться под сравнением? Просто вывести на печать таблицу, в которой по горизонтали год, по вертикали месяц?"
.
да, типа так
один под другим/один рядом с другим. можно еще абсолютное и относительное отклонение.
Гость
90 - 21.06.2020 - 16:52
87-tutsi > выбор 77 учебныз заведением ДЛЯ ЗНАКОМСТВА С ЯЗЫКАМИТ ПРОГРАММИРОВАНИЯ очень странное решение. 77/8 - в первую очередь это прикладное приограмммирование задач бизнеса (такова типовая ниша 77).
.
если и учить языку программирования на базе 77 - то показывать решение типовых абстрактных задач - ту же сортировку пузырьком, задачу коммивояжера итп.
.
а впиливать решение бизнес-задач - типа сравгнить обьемы продаж - это имхко вообще ни в какие ворота.
Гость
91 - 21.06.2020 - 18:14
О! А вот и развитие нашей задачи! Я бы даже сказала симбиоз нескольких задач!
Написано много. Изложу суть.
Нужно вывести на печать отчет в следующем виде:
|Январь|Февраль|и т.д.||||||||||
Параметры учета |00|01 |00|01 |
-----------------------------------------------------
Продажа первый этаж
Возврат первый этаж
Итого первый этаж
Продажа второй этаж
Возврат второй этаж
Итого второй этаж
Всего продаж

Где 00 и 01 - это 2000 и 2001 год.
Гость
92 - 27.06.2020 - 12:57
7.7 проще 8ки. не требовательна к железу. много материалов по ней и бывших программистов, ушедших читать по бумажке и возможно тешить свое эго. потому так и будут на ней учить, пока MS не похоронит оси, на которых работает 77. например, оставив возможность юзать только 256 разрядные приложения ). Далее, 77 дает некое представление о наличии форм, структур, внешних компонент. Но ни капли денег не отнимает у 1Са с его курсами и сертификатами. Кстати, не факт что учебное заведение иммет статус ЦСО от 1С, и в принципе может готовить 1Сников по методике 1Са. Не создает реальной конкуренции на рынке труда 1Сников, опять же. Можно сказать, что да, полезное чтото-то есть, но заработать на этом обучившемуся... ну очень не просто, учитывая отсутствие самой возможности реальной практики.
Касаемо остатков неоплаченных поставщикам товаров... Не корректная флрмулировка. Если бы был регистр, хранящий оплату конкретного товара, тогда и отчет сделать не проблема. В остальных случаях это просто невозможно. Т.к. есть частичные оплаты, ошибочные платежи, перемещения и продажи товара (и желательно оплачивать поставщику после продажи, а лучше через лет 150 после продажи)
93 - 27.06.2020 - 18:47
Совершенно не поняла, какого надо изучать 7.7?
А в качестве иностранного языка вы там латынь изучаете?
Есть много отличных языков, изучение которых что-то даст (на крайний случай, можно падаваном/джуниором устроиться в какую-нибудь шарашку). Это джава, питон, джаваскрипт на худой конец.
94 - 29.06.2020 - 12:06
Цитата:
Сообщение от Шухер Посмотреть сообщение
В средней школе информатику преподают на Pasсal практически ДОСовской.
У меня есть знакомый программист, он в частной школе как раз Паскаль и преподает. Я спрашивал почему Паскаль (он и в современных языках хорошо шарит) - он ответил, мол Паскаль мозги приучает к порядку, требует структурного мышления и не позволяет лишних вольностей, например с объявлением переменных разных типов (в отличии от C и его бесчисленных потомков). А когда мозги в порядке, то освоить любой современный язык - дело пары-тройки дней.
Гость
95 - 02.07.2020 - 09:36
Цитата:
Сообщение от bma1 Посмотреть сообщение
когда мозги в порядке, то освоить любой современный язык - дело пары-тройки дней
А спорим что немецкий не освоит?
Гость
96 - 02.07.2020 - 09:37
Цитата:
Сообщение от Мэри Сью Посмотреть сообщение
Совершенно не поняла, какого надо изучать 7.7?
Потому что7ка круче 8ки! И кроме того какая разница этим оболтусам что изучать?
97 - 02.07.2020 - 12:05
Цитата:
Сообщение от bma1 Посмотреть сообщение
Паскаль мозги приучает к порядку, требует структурного мышления и не позволяет лишних вольностей
паскаль насаждает ненужный "орднунг" в голове. Требование строгой типизации сейчас уже потеряло актуальность.
Более полезным будет язык, который своей семантикой помогает понять процессы, которые происходят при выполнении. Например, структуру оперативной памяти и специфику хранения данных в ней. Что такое Heap, что такое сборка мусора, и так далее.
Встречал "учеников", которые хорошо зазубрили, что надо типизировать переменные и нельзя переменной типа int присваивать значение типа строка.
А на вопрос: почему нельзя? - ответить не могли. Нельзя и всё. Запрещено.
98 - 02.07.2020 - 12:52
Язык должен быть гибким, тогда он будет мощным.
Если у нас переменная - суть ссылка на некоторую область памяти, нам язык должен позволять положить туда данные любого типа, единственное условие - они не должны превышать размер памяти, выделенный под эту переменную.
Гибкий язык должен позволять программисту оперировать именно такими сущностями в своих рассуждениях. А не быть рабом строгих правил типизации.
Гость
99 - 02.07.2020 - 14:04
Цитата:
Сообщение от Ирли Бёрд Посмотреть сообщение
Язык должен быть гибким, тогда он будет мощным
Да, девкам такое нравиться.
100 - 02.07.2020 - 20:28
Цитата:
Сообщение от Ирли Бёрд Посмотреть сообщение
паскаль насаждает ненужный "орднунг" в голове. Требование строгой типизации сейчас уже потеряло актуальность.
Полезность Паскаля в другом, тут, как я понял, важно приучить сперва думать о том, что будет содержаться в переменной, а потом согласно этому и создавать ее. А не по принципу: сделаем переменную, потом запихнем в нее не пойми чего, а потом в каком-то дочернем объекте попробуем с ней поработать и получим облом, так как имеем только адрес, и не имеем ни малейшего представления, что там по этому адресу содержится (и какой длины), как извлекать и что с этим делать...
Цитата:
Сообщение от Толстый Дог Посмотреть сообщение
А спорим что немецкий не освоит?
Литературный немецкий - это кадавр слепленный Лютером из кучи местечковых диалектов при переводе Библии.
101 - 03.07.2020 - 05:09
97-Ирли Бёрд >А как же тип Variant?
102 - 03.07.2020 - 05:37
Цитата:
Сообщение от victuan Посмотреть сообщение
А как же тип Variant?
а что с ним не так? По-моему, с ним всё в порядке.
Дело-то не в типе Variant, а в том, что программист должен при написании программы мыслить категориями, которые действительно имеют значение при выполнении кода. А не навязанными языком искусственными ограничениями.
Гость
103 - 03.07.2020 - 07:54
102-Ирли Бёрд > Мощно задвинул! Внущаить (с)Хрюн
Так сказать пафосно и без толку.
104 - 03.07.2020 - 09:32
Цитата:
Сообщение от Ирли Бёрд Посмотреть сообщение
программист должен при написании программы мыслить категориями, которые действительно имеют значение при выполнении кода. А не навязанными языком искусственными ограничениями.
Это проходит. после первой же попытки найти ошибку в коде, написанном тобой же пару месяцев назад... "Здесь я написал так, потому что меня тогда посетила какая-то гениальная идея, но сейчас нет ни малейшего представления, что я тут хотел сделать, что сделал и как это все на самом деле работает..."
105 - 03.07.2020 - 13:11
Цитата:
Сообщение от bma1 Посмотреть сообщение
Это проходит. после первой же попытки найти ошибку в коде, написанном тобой же пару месяцев назад...
ты это написал с позиции многоопытного практика, который с мудростью и терпением выслушивает эмоциональный юношеский бред молокососа, ещё не познавшего настоящих жестокостей истинного кодинга )

Отредактировано EarlyBird; 03.07.2020 в 13:12. Причина: абр
106 - 03.07.2020 - 20:13
Цитата:
Сообщение от Ирли Бёрд Посмотреть сообщение
ты это написал с позиции многоопытного практика
истинный многоопытный практик вообще не кодит. У него есть заветная 5-ти дюймовая дискетка с 12 заветными шаблонами на все случаи жизни... и он использует только Ctrl-Ins/Shift-Ins...
Гость
107 - 04.07.2020 - 20:40
Цитата:
Сообщение от bma1 Посмотреть сообщение
истинный многоопытный практик вообще не кодит. У него есть заветная 5-ти дюймовая дискетка с 12 заветными шаблонами на все случаи жизни... и он использует только Ctrl-Ins/Shift-Ins...

ООООО! ДАААААААА!
Гость
108 - 04.07.2020 - 20:45
Я тут всех отправила отдыхать, а сама, отдыхая от всех, сижу решаю задачки из этой методички.
Видимо автор крутой перец, если он знает как все это воплотить в жизнь!

Скажите, реально можно вывести на форму ТЗ с многоуровневой сортировкой? Как это сделать?
В строках должны быть конкретные параметры, а в столбцах сравнение оборотов за месяц по годам. То есть все январи, потом все феврали и т.д. в выбранном диапазоне.
КАК? Как это сделать?
109 - 04.07.2020 - 21:19
2(108) Если я что-то помню из 77, я нечто подобное делал создавая временный ТЗ с данными и СЗ со списком имен колонок ТЗ, потом СЗ сортировал так, как мне надо (например задав имена колонок как "колонка_ММ_ГГГГ") и при формировании ТЗ в форме создавал бы колонки в порядке следования их имен в СЗ и брал бы данные из временно ТЗ.
Гость
110 - 04.07.2020 - 21:21
109-bma1 >Спасибо! Попробую.
Гость
111 - 05.07.2020 - 12:45
А вот еще вопрос...
При выполнении запроса появляется сообщение "Значение не представляет агрегатный объект (Наименование):" и после нажатия на любую кнопку после двоеточия циклично меняются числа 2, 5, 8, 11, 14, 17, 20, 23, 26, 29, 32, 35.
Не зависимо от выбранного периода отчета оборвать это действо получается только через "Снять задачу" в Диспетчере задач.
Что означают эти цифры? Где искать ошибку?
Гость
112 - 05.07.2020 - 13:06
Наименование в запросе присутствует только в одном виде, как наименование проекта.
Процедура Задача23()
Перем Запрос, ТекстЗапроса, Таб;
//Создание объекта типа Запрос
Запрос = СоздатьОбъект("Запрос");
ТекстЗапроса =
"//**{ЗАПРОС(ЗакупкаПродажаПоМесяцам)
|Период с ВыбНачПериода по ВыбКонПериода;
|Обрабатывать НеПомеченныеНаУдаление;
|Безнал = Документ.СтрокаВыпискиПриход.Сумма;
|Возврат = Документ.ВозвратОтПокупателя.Сумма;
|Реализация = Документ.Реализация.Сумма, Документ.РеализацияРозница.Сумма;
|Поступление = Документ.ПоступлениеТМЦ.Сумма;
|Проект = Документ.ВозвратОтПокупателя.Проект, Документ.Реализация.Проект, Документ.ПоступлениеТМЦ.Проект, Документ.СтрокаВыпискиПриход.Проект, Документ.РеализацияРозница.Проект;
|Функция Реализация1 = Сумма(Реализация) когда(Проект.Наименование = ""1"");
|Функция Возврат1 = Сумма(Возврат) когда(Проект.Наименование = ""1"");
|Функция Реализация2 = Сумма(Реализация) когда(Проект.Наименование = ""2"");
|Функция Возврат2 = Сумма(Возврат) когда(Проект.Наименование = ""2"");
|Функция Реализация3 = Сумма(Реализация) когда(Проект.Наименование = ""3"");
|Функция Возврат3 = Сумма(Возврат) когда(Проект.Наименование = ""3"");
|Функция Реализация4 = Сумма(Реализация) когда(Проект.Наименование = ""4"");
|Функция Возврат4 = Сумма(Возврат) когда(Проект.Наименование = ""4"");
|Функция Возврат5 = Сумма(Возврат) когда(Проект.Наименование = ""5"");
|Функция НаСчет1 = Сумма(Безнал) когда(Проект.Наименование = ""6"");
|Функция НаСчет2 = Сумма(Безнал) когда(Проект.Наименование = ""2"");
|Функция НаСчет3 = Сумма(Безнал) когда(Проект.Наименование = ""7"");
|Функция ПоступлениеТовара = Сумма(ПоступлениеТМЦ);
|Группировка Месяц;
|"//****ЗАПРОС
;
// Если ошибка в запросе, то выход из процедуры
Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда
Возврат;
КонецЕсли;

// Подготовка к заполнению выходных форм данными запроса
Таб = СоздатьОбъект("Таблица");
Таб.ИсходнаяТаблица("Задача23");
// Заполнение полей "Заголовок"
Таб.ВывестиСекцию("Заголовок");
Состояние("Заполнение выходной таблицы...");
Таб.Опции(0, 0, Таб.ВысотаТаблицы(), 0);
Пока Запрос.Группировка(1) = 1 Цикл
// Заполнение полей Месяц
Таб.ВывестиСекцию("Месяц");
КонецЦикла;
// Заполнение полей "Итого"
Таб.ВывестиСекцию("Итого");
// Вывод заполненной формы
Таб.ТолькоПросмотр(1);
Таб.Показать("Задача23", "");
КонецПроцедуры
113 - 05.07.2020 - 13:34
В условии "Когда" не нужно сравнивать по реквизиту проекта:
Проект.КакойТоРеквизит (например, Проект.Наименование)
лучше сравнивать прямо по Проекту:

Функция Реализация4 = Сумма(Реализация) когда(Проект = ПроектСсылка4);

Перед выполнением запроса инициализируй эту переменную:
СпрПроекты = СоздатьОбъект("Справочник.Проекты");
СпрПроекты.НайтиПоНаименованию("4 ");
ПроектСсылка4 = СпрПроекты.ТекущийЭлемент();
Гость
114 - 05.07.2020 - 14:14
113-Ирли Бёрд >Но в предыдущей задаче все сработало именно в моем варианте.
В чем отличие?
В вашем варианте код получится намного длиннее, так как необходимо будет прописать отдельно все проекты, по которым отбираются данные.
Я не говорю, что это хуже. Мне хочется разобраться в сути.
Гость
115 - 05.07.2020 - 14:15
113-Ирли Бёрд >Ну, то есть, почему не стоит сравнивать по реквизиту.
116 - 05.07.2020 - 14:52
Цитата:
Сообщение от tutsi Посмотреть сообщение
Ну, то есть, почему не стоит сравнивать по реквизиту
потому что там может быть не значение типа "Справочник.Проекты", а пустое значение неопределённого типа.
А у него нет и не может быть свойства "Наименование"
117 - 05.07.2020 - 14:54
Именно поэтому тебе запрос и возвращает ошибку. Ты его заставляешь вернуть тебе свойство "Наименование" от ничего (а у ничего нет этого свойства, как и любого другого)
118 - 05.07.2020 - 14:56
А вот когда мы сравниваем ничего со ссылкой ПроектСсылка4 (или любой другой), запрос не ругается, потому что это можно.
Это просто два значения, их можно сравнивать, у нас тут не восьмёрка.
Гость
119 - 05.07.2020 - 15:10
Цитата:
Сообщение от Ирли Бёрд Посмотреть сообщение
потому что там может быть не значение типа "Справочник.Проекты", а пустое значение неопределённого типа. А у него нет и не может быть свойства "Наименование"
То есть, в документе не будет указан проект?
120 - 05.07.2020 - 17:09
Цитата:
Сообщение от tutsi Посмотреть сообщение
То есть, в документе не будет указан проект
Указан проект или не указан, не суть важно. Важно проектировать запрос так, чтобы он не сломался в ситуации, когда проект не указан (а такие ситуации могут произойти).


К списку вопросов






Copyright ©, Все права защищены