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); | | ||
121
- 05.07.2020 - 18:28
| Да! Я поняла почему так нужно сделать. Но ошибка возникает из-за того, что в документе не указан проект? | | ||
122
- 05.07.2020 - 19:13
| Мне не понятна последовательность чисел, которые указываются в ошибке. | | ||
123
- 05.07.2020 - 20:07
|
Добавь вот это в код: Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда Возврат; КонецЕсли; ТЗ = СоздатьОбъект("ТаблицаЗначений"); Запрос.Выгрузить(ТЗ, 1, 0); ТЗ.ВыбратьСтроку(); Так ты сможешь посмотреть результат запроса, и станет понятен ответ на твой вопрос. | | ||
124
- 15.07.2020 - 10:37
| студент на 7.7?? препод старовер видать))) | | ||
125
- 16.07.2020 - 09:25
| 124-user1C > Препод умный человек. | | ||
126
- 16.07.2020 - 09:26
| Поток демагогии и пафоса продолжался которую неделю... | | ||
127
- 16.07.2020 - 11:09
|
(125) умный бы на dbase IV задания давал, чеуж...))) | | ||
128
- 25.07.2020 - 14:00
|
А знаете! Этот мужик, который составлял задачник, он очень умный! И семерку, скорее всего, знает от и до. Судя по задачам, которые я не все могу решить, он просто асс! Например у него есть задание сделать отчет, который бы выводил данные без запуска 1с, на основании файлов dbf. Мне такое даже в голову не приходило. Из того, что у меня так и не получилось... Я никогда не работала с таблицами значений на форме до этой ситуации. У меня не получилось вывести результаты по колонкам в ТЗ на форму. У меня не получилось вывести результат в ТЗ при нескольких группировках. У меня не получилось вывести в первый столбец наименование группы (ну или как это назвать, когда группировка по дням, например, в первой колонке должна быть указана дата, если по месяцам, то месяц). У меня не получилось создать список значений и выгрузить данные в отдельный файл, а потом загрузить эти данные из файла. При чем у меня ошибка явно в формировании самого списка значений. Еще неделю я бабушка-одиночка. Надо бы успеть за это время! И куча еще чего... Я вообще в шоке от возможностей работы с ТЗ. И вот правда! Прям чувствую, как мой усыхавший было мозг, увеличивается в размере! :) Отредактировано tutsi; 25.07.2020 в 14:02. Причина: Орфографические ошибки | | ||
129
- 25.07.2020 - 20:34
|
128-tutsi > "Например у него есть задание сделать отчет, который бы выводил данные без запуска 1с, на основании файлов dbf. Мне такое даже в голову не приходило." - так не получится. Отчет - работает в среде запущенной 1С. Без 1С отчет работать не будет. если речь идет о том. что отчет формировался бы БЕЗ ПОКАЗА окна 1С - то это тривиально - при запуске 1С В ПриНачалеРаботыСистемы() - выполняем запуск отчета (который не может быть показан. а значит автоматом д.б. сохранен в вижд, который м.б. открыть вне 1С - в эксель например). а откуда уж отчет тянет данные из каки-то сторонних дбф или из базы - не суть важно. . если речь идет о неком НЕ 1C-ном отчете - который тянет данные из файлов дбф базы 1С - то во первых такой отчет в общем случае работать не будет ибо база может быть скульная, или отчет будет похитрее чем просто из дбф. Можно еще тупо по ОЛЕ извне подключиться к клюшкам и по оле запустить построение отчета. по всякому можно. из краткого упоминания "изврата" - хз понять что там имел в виду препод | | ||
130
- 25.07.2020 - 20:36
|
128-tutsi > "У меня не получилось вывести результаты по колонкам в ТЗ на форму. " - в заисимости от данных динамически определяешь колонки ТЗ, например, Для ы=1 по 11 Цикл ТЗ.НоваяКолонка("Месяц"+ы); КонецЦикла; . а потом пихаешь в колонки нужные данные | | ||
131
- 25.07.2020 - 20:39
|
128-tutsi > "У меня не получилось создать список значений и выгрузить данные в отдельный файл, а потом загрузить эти данные из файла. При чем у меня ошибка явно в формировании самого списка значений." СЗ = СоздатьОбъект("СписокЗначений"); СЗ.ДобавитьЗначение(КакоеТоЗначение1,СтрокаВизуаль ноеПредставлениеКакогоТоЗначения1); СЗ.ДобавитьЗначение(КакоеТоЗначение2,СтрокаВизуаль ноеПредставлениеКакогоТоЗначения2); далее см. ЗначениеВФайл и ЗначениеИзФайла | | ||
132
- 25.07.2020 - 20:40
|
128-tutsi > "Прям чувствую, как мой усыхавший было мозг, увеличивается в размере! :)" - потому как мозг был усохший, морщинистый, много извилин, думательный. а тут егор стало распирать как воздушный шарик, извилины разглаживаются, думалка не работает.. ;-) | | ||
133
- 25.07.2020 - 20:48
|
128-tutsi > " У меня не получилось вывести в первый столбец наименование группы (ну или как это назвать, когда группировка по дням, например, в первой колонке должна быть указана дата, если по месяцам, то месяц)." - не получилось - это сильно обще... что именно не получилось? знаешь все буквы, но не смогла прочитать слово? помогает тупое чтение синтаксПомощника - узнаешь много методов. которые оказывается есть... . например как-то так, типа Пока Запрос.Группировка(1)=1 Цикл ЗначениеГруппировки = Запрос.ЗначениеУпорядочивания(1,) ТЗ.НоваяСтрока(); ТЗ.УстановитьЗначение(ТЗ.НомерСтроки,1,ЗначениеГру ппировки) КонецЦикла; | | ||
134
- 26.07.2020 - 12:05
| Именно НЕ 1С-ный отчет и для дбф базы. | | ||
135
- 26.07.2020 - 12:09
| Пихаю. В печатную форму получается вывести. А в ТЗ на форму не отображается. Синтаксических ошибок не находит, но, чую, где-то с запятыми засада. | | ||
136
- 26.07.2020 - 12:15
| А в процедуру ПриОткрытии эту строку нужно прописывать как-то? | | ||
137
- 26.07.2020 - 12:27
| Цитата:
ЗначениеГруппировки = Запрос.ЗначениеУпорядочивания(1);" | | ||
138
- 26.07.2020 - 12:43
|
ТЗ.УстановитьЗначение(ТЗ.НомерСтроки,1,ЗначениеГру ппировки); ERT(116)**: Номер за пределами значения! | | ||
139
- 27.07.2020 - 03:32
| 135-tutsi > ну ты же код свой не показываешь. тут собрались ведь исключительно телепаты и бабыванги. хз что там у тебя. самая простейшая ошибка когда вроде вен написано, а ВТЗ ничего не выводится - тупо пропустила ТЗ.НоваяСтрока(); - по коду идет установка значений в ТЗ - но строк добавляемых нет. уходит в никуда. | | ||
140
- 27.07.2020 - 03:37
|
134-tutsi > ну так это к 1с имеет весьма отладенное отношение. не зная что в каой ДБФ лежит - хрен ты знаешь что ткуда тянуть. чтобы узнать что где лежит - тебе НЕ 1Сными средствами придется разбирать словарь данных 1cv7.dв - парсить его, строить модель данных по распарсенным данным и в соответствии с построенной моделью тянуть данные из нужных ДБФ - это далеко задача не начального уровня. и не среднего. и вообще не 1Сная. в этоq задаче вы или что-то не договариваете или не так транслируете здесь задачу. | | ||
141
- 27.07.2020 - 04:00
|
137-tutsi > здесь налажал. тут смысл в том. чтобы в коде получить имя группировки (например, День/Месяц/Квартал) - и сделать ТЗ колонку с таким идентификатором. . обычно когда ты строишь запрос - ты знаешь какая группировка у тебя используется явно То есть в коде написано Группировка Месяц; . Если группировка зависит от периодичности - выбранной юзером на форме например (день/месяц/....) то имя группировки - ты тоже знаешь - имя сидит в какой-то переменной которую ты используешь при формирвоании текста запроса. . дальше ты используешь имя группировки периодичности в качестве идентфикатора колонки. и делаешь что надо... . 1. получить из итогов запроса перечень всех периодов 2. в цикле по перечню всех периодов создаешь колонки с идентфикаторами периодов 3. делаешь что надо с распихиванием даннных по колонкам-строкам. п.2,3 могут варьироваться в зависимости от конкретности задачи. | | ||
142
- 27.07.2020 - 04:03
|
задачи не скажу совсем чтобы уж новичковые, надо иметь какое-то представление о возможностях программрирования 1С. надо получить более подробные пояснения ПО КОНКРЕТНОЙ задаче/проблем - стучитесь или пишите здесь конкретную задачу/проблему. Чем более общий вопрос - тем более общий ответ. | | ||
143
- 27.07.2020 - 16:52
| Цитата:
Я ж чего так стараюсь... Следующий учебный год племянник будет учиться. Не хочется второй раз на одни и те же грабли наступать. Цитата:
А вообще я поняла, что годы моего "программирования" в 1С - это был детский сад. Ни одной интересной задачи не было. Тут с одними запросами головомороки полным полно. А я... Печатные формочки делала, небольшие изменения в программу... Отчеты - вот сила мысли! :) | | ||
144
- 28.07.2020 - 12:34
| 143-tutsi > ну, обычно здесь и на мисте если ты выкладываешь код проблемный - обычно не спешат сразу решение давать. а подталкивают в нужном направлении ;-) так что не баись. | | ||
145
- 28.07.2020 - 19:57
|
Уважаемые суперзнатоки! У меня вопрос! Берем нашу первую задачу и усложняем ее. Есть функции |Функция РеализацияП1 = Сумма(СуммаРеализация) когда(Проект.Наименование = ""П1""); и тут еще нужно указать, что склад "1" |Функция РеализацияП2 = Сумма(СуммаРеализация) когда(Проект.Наименование = ""П2""); и тут еще нужно указать, что склад "1" |Функция РеализацияП1 = Сумма(СуммаРеализация) когда(Проект.Наименование = ""П1"");и тут еще нужно указать, что склад "2" |Функция РеализацияП2 = Сумма(СуммаРеализация) когда(Проект.Наименование = ""П2""); и тут еще нужно указать, что склад "2" |Функция РеализацияП3 = Сумма(СуммаРеализация) когда(Проект.Наименование = ""П3""); |Функция ВозвратП1 = Сумма(СуммаВозврат) когда(Проект.Наименование = ""П1""); |Функция ВозвратП2 = Сумма(СуммаВозврат) когда(Проект.Наименование = ""П2""); |Функция ВозвратП3 = Сумма(СуммаВозврат) когда(Проект.Наименование = ""П3""); Как это правильно реализовать? | | ||
146
- 28.07.2020 - 20:08
|
Пишу так ((Проект.Наименование = ""1"") и (Склад.Наименование = ""1"")); Как добавить еще склад 3 к этой функции? | | ||
147
- 28.07.2020 - 20:22
| Писать отдельную функцию и потом их суммировать? | | ||
148
- 28.07.2020 - 21:18
| Трэш и угар полнейший. | | ||
149
- 28.07.2020 - 21:19
|
146-tutsi > "Как добавить еще склад 3 к этой функции?" нет такой операции "еще". есть операции И, Или, Не. | | ||
150
- 28.07.2020 - 21:22
|
если в том же стиле трэша и угара то примерно так (Проект.Наименование = ""1"") и ((Склад.Наименование = ""1"") или (Склад.Наименование = ""3"")) | | ||
151
- 28.07.2020 - 21:23
|
Представь что проектов будет 30 и складов штук 8. так и будешь функции множить? | | ||
152
- 28.07.2020 - 21:28
|
Чисто на подумать на досуге загнать список складов в СЗ загнать список проектов в СЗ Условие(Проект в СписокПроектов) Условие(Склад в СписокСкладов) Функция Продажа = Сумма(СуммаРеализация); Функция Возврат = Сумма(СуммаРеализация); Группировка Склад; Группировка Проект; далее тупо обходить результаты запроса и суммировать данные по нужным условиям. | | ||
153
- 28.07.2020 - 21:29
| Если в запросе несколько Условие - они соединяются как "И" | | ||
154
- 28.07.2020 - 21:33
|
для тупой учебной задачи - покатит как в 145. в реальности - так никто не делает . как говорится . "Недоделанные отчеты - это не беда. Главное - доделывайте детей. А то недоделанные дети вырастают и приносят недоделанные отчеты. И никак не разорвать этот порочный круг" . большой смайл. | | ||
155
- 28.07.2020 - 21:33
| главное, что в ТЗ видимо все получилось. бо направленеи вопросов резко изменилось... | | ||
156
- 28.07.2020 - 22:29
| Та я уже в страшном сне вижу семерку! Кому она вообще нужна? НО! Задание есть, его нужно выполнить... | | ||
157
- 28.07.2020 - 22:51
| Цитата:
Я ж так и делаю! Только скобку одну не поставила. И он у меня выругался нецензурно!! | | ||
158
- 28.07.2020 - 22:52
| Та это разные задания. С ТЗ все получилось, кроме даты в первой колонке и результатов в последней строке. | | ||
159
- 29.07.2020 - 00:30
|
"С ТЗ все получилось, кроме даты в первой колонке и результатов в последней строке." . - Правда ли что вы виграли в спортлото миллион рублей? - Правда, ноне в спортлото, а в карты, и не миллион, а квартиру, и не выиграл, а проиграл... | | ||
160
- 01.08.2020 - 13:49
| Ну кроме тех задач, которые я сюда кидаю, я еще ж и другие решаю. | |
| Интернет-форум Краснодарского края и Краснодара |