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

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

Гость
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);



Гость
161 - 01.08.2020 - 16:38
И все-таки прошу помощи. Ничего не получается с итогами в таблицу на форме.

Вот такая таблица

Пока Запрос.Группировка(1) = 1 Цикл
ТЗДМГ.ПолучитьСтроку();
ТЗДМГ.НоваяСтрока();
ТЗДМГ.Параметр1 = Запрос.1 - Запрос.2 - Запрос.3;
ТЗДМГ.Параметр2 = Запрос.4 - Запрос.5;
ТЗДМГ.Параметр3 = ТЗДМГ.Параметр1+ ТЗДМГ.Параметр2;
ТЗДМГ.Параметр4 = Запрос.6 - Запрос.7;
ТЗДМГ.Параметр5 = Запрос.8;
ТЗДМГ.Параметр6 = Запрос.9;
ТЗДМГ.Параметр7 = Запрос.10;
ТЗДМГ.Параметр8 = Запрос.11;
ТЗДМГ.Параметр9 = ТЗДМГ.Параметр1 + ТЗДМГ.Параметр3;
ТЗДМГ.Параметр10 = ТЗДМГ. Параметр1 + ТЗДМГ. Параметр2 + ТЗДМГ. Параметр6 + ТЗДМГ. Параметр7 + ТЗДМГ.Параметр8;

КонецЦикла;

Как вывести итоги внизу этой таблицы?

Отредактировано tutsi; 01.08.2020 в 16:40. Причина: Орфографические ошибки
Гость
162 - 02.08.2020 - 09:17
Посмотрел только последний запрос. Выбирать в запросе "Наименование" и сравнивать с "Наименованием" - это очень плохая практика, не надо к ней приучаться.
Гость
163 - 02.08.2020 - 09:50
Цитата:
Сообщение от USSR Посмотреть сообщение
это очень плохая практика
Спасибо за совет! Можете объяснить, почему?
Гость
164 - 02.08.2020 - 09:58
152-Сергей Че >Перечитала...
Возник вопрос...
В список складов и список проектов загонять только те, которые нужны для отчета или все, которые существуют?
Гость
165 - 02.08.2020 - 12:11
(163)Наименование могут поменять и Ваш отчет перестанет работать. Выбирайте в запросе ссылки. В запросе можно сразу группировать по складам и проектам. а потом уже обрабатывать запрос или выгрузить его в таблицу значений, с которой можно делать что угодно. Например развернуть проекты по горизонтали
Выбирать в запросе по конкретным проектам это плохое решение. Завтра их станет 4 и все сломается. Надо группировать по нему
Гость
166 - 02.08.2020 - 13:59
Да! Есть похожая задача в этом сборнике. Но я с ней еще не разбиралась. Причем группировка мне понятна, а вот дальше пока темный лес.
Как поступать, если в отчет нужно вывести данные только по конкретным складам и проектам? Аналогично множественному фильтру в ТиС?
Я с этим сборником чувствую себя очень неуютно. Я поняла, что я слишком мало знаю о семерке.
Гость
167 - 02.08.2020 - 14:33
(166)для универсального решения - множественный фильтр.Для частного - отборы проектов в 3 полях, с проверкой заполнения Надо будет не 3, а больше, скажете - Вы же сами просили 3. Вариантов много
Гость
168 - 02.08.2020 - 14:35
Не пытайтесь охватить сразу все. Научитесь выбирать данные и обрабатывать их для отчета. А потом займитесь отборами
169 - 03.08.2020 - 11:21
166-tutsi > угу, типа.
Можно положить на форму СЗ. Пользователь сам туда добавляет нужные данные.
170 - 03.08.2020 - 11:23
161-tutsi >
Пока Запрос.Группировка(1) = 1 Цикл
ТЗДМГ.ПолучитьСтроку();
ТЗДМГ.НоваяСтрока();
....
КонецЦикла;
.
это что за бред?
в чем смысл получения очередной строки из ТЗ, неиспользования ее и сразу же добавление новой строки в ТЗ? в чем сакральный смысл?
.
171 - 03.08.2020 - 11:35
161-tutsi > "Как вывести итоги внизу этой таблицы?"
внизу - это ГДЕ?
.
если надо вывести итоги в ТЗ в последней строке этой ТЗ - то как обычно - в цикле или еще где накапливаем итоги, после цикла добавляем новую строку в ТЗ, запихиваем в строку итоговые данные.
.
опять же - что понимается под "итогами"..? - если вопрос стоит "как в ТЗ добавить строку с итогами по всем колонкам этой же ТЗ?" - то просто, итоги не надо накапливать? есть метод ТЗ.Итоги() - его и применяем.. - и вообще полезно открывать СинтаксПомощник и смотреть даже тупо подряд на описание языка... там можно найти много интересного...
172 - 03.08.2020 - 11:36
А про итоги, вот тестовый пример
.
//*******************************************
Процедура Сформировать()

// тестовые данные
ТЗ = СоздатьОбъект("ТаблицаЗначений");
ТЗ.НоваяКолонка("Первая","Число");
ТЗ.НоваяКолонка("Вторая","Число");

Для ы=1 по 3 Цикл
ТЗ.НоваяСтрока();
ТЗ.Первая = ы;
ТЗ.Вторая = ы*4;
КонецЦикла;

// тут выше код заполнения ТЗ
// ниже код итогов

ТЗ.НоваяСтрока();
КК = ТЗ.КоличествоКолонок();
Для НомерКолонки = 1 по КК Цикл
ТЗ.УстановитьЗначение(ТЗ.НомерСтроки,НомерКолонки, ТЗ.Итог(НомерКолонки));
КонецЦикла;

//ОТЛАДКА
ТЗ.ВидимостьКолонки("НомерСтроки",1);
ТЗ.ВыбратьСтроку(,"просмотр ТЗ");

КонецПроцедуры
173 - 03.08.2020 - 11:37
И держать в ТЗ последней строкой итоги - это очень нехорошая практика. Учитьяс такому не надо. ТЗ по своей природе - простой список однородных данных. и пихать в нее её же самое итоги - фу, бяка...
Гость
174 - 20.03.2021 - 22:26
Всем здравствуйте!
Надеялась, что племяннику удастся воспользоваться знаниями, полученными моим сыном в прошлом учебном году. Не тут-то было! Задания совсем другие!
Многое я знаю, но вот есть задание, которое я выполнить не смогла.
Нужно при загрузке конфигурации открыть справочник номенклатура для Пользователя 1, Журнал документов общий для пользователя 2, Выписку банка для пользователя 3, Обработку банк-клиент для пользователя 4 и внешнюю обработку для пользователя 5.
В чем загвоздка...
Не могу заставить открываться всему этому только у конкретных пользователей.
175 - 23.03.2021 - 13:50
быдлокод:
Если ИмяПользователя()="Иванов" Тогда
ОткрытьФорму(...справочник)
итд...
176 - 23.03.2021 - 18:44
Цитата:
Сообщение от Чучундер Посмотреть сообщение
Если ИмяПользователя()="Иванов" Тогда
На одном из релизов 7.7 была такая фишка, что если имя пользователя содержало символы "катя" (в любом регистре) у этого пользователя обрубались все права. И приходилось именно через сравнение со строкой обходить это издевательство.
Гость
177 - 19.10.2021 - 13:45
Дорогое 1с-сообщество, выручавшее меня не раз!
Последствия длительного сидения дома без дела, а так же последствия перенесенной этой вот новой коронавирусной, привели к полному отуплению...
И опять у меня борьба с заданием по 1с 7.7. Я уже, прям, штатный консультант...
Задание такое...
Существует внешняя печатная форма товарно-транспортной накладной. При вызове процедуры печати открывается диалоговое окно, в котором нужно заполнить ряд данных. Одно из полей, ПунктПогрузки, имеет тип Строка. Нужно, чтобы при открытии формы это поле заполнялось данными о фактическом адресе поставщика и допускало изменение данных.
И это опять Торговля и склад 7.7. Задания для Бухгалтерии и Зарплаты у меня трудностей не вызывают.
178 - 19.10.2021 - 16:55
А чем отличается впф для тис и бух, раз задания для бух трудностей не вызывает?
Ну, раз у тебя тис, - смотри на примере Торг-12 (настраиваемая)
Гость
179 - 19.10.2021 - 17:17
Цитата:
Сообщение от Хряк Посмотреть сообщение
Ну, раз у тебя тис, - смотри на примере Торг-12 (настраиваемая)
Посмотрела. Там эти данные не заполняются.
Насколько я понимаю, готового решения от 1С никогда не было.
180 - 20.10.2021 - 16:29
это пример пользования внешней обработкой, а данные ты сама должна заполнять.
ПунктПогрузки = Док.Контрагент.ЮрФизЛицо.ФактАдрес;
181 - 28.10.2021 - 23:04
Умилился в очередной раз.. ;-)
182 - 28.10.2021 - 23:10
178-Хряк > тупняк обычно вызван тем, что не понимаешь вообще всё. то есть отсутствует цельное представление. Когда отсутствует представление о конфигурации, которое накладывается на отсутствие представления предметно-объектной модели 1С архитектуры метаданных - всё.. суши весла... я когда начал клюшки осваивать (давным давно), интеренета можно сказать не было, читал описание языка.. ниче непонятно! не, то есть понятно что данный оператор делает, но как и почему - непоняоно.. Синтакс-помощник - вообще какой-то набор атомарных данных, каждое описание само по себе. Но в один момент в мозгу щелкнуло и все склеислось. стала понятна МОДЕЛЬ псотроения этой 1Сины.. Что к этому привело - послужило переключателем - хз.. не помню уже, давно было. Помогло конечно то, что опыт программирования был большой к этому времени, поэтому вьехал быстро. Но до сих пор встречаю клюшечников, которые пишуть код просто как некий набор несвязанных между собой сущностей, то сеть вообще не понимают что и чего вытекает... Но я с этим смирился, если соглашаются то учу, возя в тоннах этого написанного ими говонокода (правда, честно сказать. и на свой-то иногда тоже протвино смотерть) ;-)

Отредактировано Чучундер; 28.10.2021 в 23:11. Причина: ашипки
183 - 29.10.2021 - 15:00
Цитата:
Сообщение от Чучундер Посмотреть сообщение
Но до сих пор встречаю клюшечников
за что такая дискриминация восьмерочников? они еще чаще пишут наобум. Редко понимая всякие особенности клиент-серверной схемы, что где существует и что где выполняется.
184 - 29.10.2021 - 15:01
Цитата:
Сообщение от Чучундер Посмотреть сообщение
я когда начал клюшки осваивать (давным давно), интеренета можно сказать не было, читал описание языка.. ниче непонятно
я после того как обучил на работе третьего сотрудника 1с 77, написал методичку и стало гораздо легче...
185 - 30.10.2021 - 17:16
183-bma1 > этих сусликов я вообще в расчет не принимаю... ;-)
186 - 30.10.2021 - 17:17
184-bma1 > погромиста1С обучал или пользюка?
187 - 01.11.2021 - 20:46
Цитата:
Сообщение от Чучундер Посмотреть сообщение
погромиста1С обучал или пользюка?
кодить учил. У Митичкина на сайте сохранилась https://old.mista.ru/buh_1c/index.html
Гость
188 - 17.12.2021 - 12:56
Всем здравствуйте!
Наконец-то я жива... Без дальнейших комментариев...

Цитата:
Сообщение от Хряк Посмотреть сообщение
это пример пользования внешней обработкой, а данные ты сама должна заполнять. ПунктПогрузки = Док.Контрагент.ЮрФизЛицо.ФактАдрес;
Спасибо огромное! Дети смотрели уже без меня. Все сделали. Всё получилось.

Новое задание введшее меня в ступор...
Вывести штрихкод в этикетку получается. А в ценник не выходит. Что может быть?
Пока не вижу что они там написали. Они на лабораторной. Общаемся посредством WhatsApp...
Гость
189 - 17.12.2021 - 12:58
Цитата:
Сообщение от Чучундер Посмотреть сообщение
отсутствует цельное представление.
Да... К сожалению все забыто... Семерка давно в прошлом и приходится по новой все осваивать.
Причем нет далеко идущих планов. Детям учиться еще полтора года. Дальше уже мне эти знания не пригодятся... Буду бабушкой. Ну может когда-нибудь, кому-нибудь нужно будет помочь...
Гость
190 - 17.12.2021 - 13:37
Задание такое...
Существует стандартная процедура печати ценников. Добавьте в нее опцию печати штрихкода, с возможностью подключать ее на форме.

Процедура ДобавитьЦенник(Таб, ПечФирма, ПечНаименование, ПечЕдиница, ПечРозн, Столбик, Ряд)

Столбик = ?(Столбик = 0, 1 , 0 );
Ряд = ?(Столбик = 0, Ряд + 1, Ряд);

Если Ряд > 5 Тогда
Таб.НоваяСтраница();
Ряд = 1;
КонецЕсли;

Если Столбик = 0 Тогда
Таб.ВывестиСекцию("Товар|Ценник");
Иначе
Таб.ПрисоединитьСекцию("Товар|Ценник");
КонецЕсли;

КонецПроцедуры

Процедура Сформировать(ТаблицаТоваров,ПечФирма)

Таб = СоздатьОбъект("Таблица");
Таб.ИсходнаяТаблица("Таблица");

Столбик = 1;
Ряд = 0;

ТаблицаТоваров.ВыбратьСтроки();
Пока ТаблицаТоваров.ПолучитьСтроку() = 1 Цикл
ПечРозн = глФРМ(ТаблицаТоваров.Цена, ТаблицаТоваров.Валюта);
ПечНаименование = ТаблицаТоваров.Товар;
ДобавитьЦенник(Таб, ПечФирма, ТаблицаТоваров.Товар, ТаблицаТоваров.Единица, ПечРозн, Столбик, Ряд);
глОживить(1);
КонецЦикла;

Таб.Опции(0,0,0,0,"ПечатьЦенников","ПечатьЦенников ");
Таб.ТолькоПросмотр(1);
Таб.Показать("Товарные ценники","");

КонецПроцедуры

Процедура ПриОткрытии()

СтатусВозврата(0);
ДанныеДляПечати = Форма.Параметр;

Если ТипЗначенияСтр(ДанныеДляПечати) <> "СписокЗначений" Тогда
Возврат;
КонецЕсли;

ПечФирма = ДанныеДляПечати.Получить("Фирма");
ТаблицаТоваров = ДанныеДляПечати.Получить("Таблица");

Сформировать(ТаблицаТоваров, ПечФирма);

КонецПроцедуры // ПриОткрытии()
Гость
191 - 17.12.2021 - 14:33
Лабораторная не выполнена. Будут делать еще раз.
Что они делали...
Брали две обработки, печать ценников и печать этикеток, и пытались их объединить. Но явно как-то коряво.
Не могу добиться, вставляли ли они картинку в печатную форму.
Вопрос пока остается открытым.
Постараюсь вечером скинуть свой вариант. Поплюйтесь, пожалуйста!
192 - 17.12.2021 - 21:21
;-)
193 - 17.12.2021 - 21:27
В обработке сделать два макета
имя первого макета Таблица0, второго Таблица1
в первый макет - без ШК положить (например, ценник), во вторую таблицу - положить с ШК (например, этикетку).
на форму положить флажок "Печатать с ШК" (пусть его идентификатор будет флШтрихкод, если вЫкл - то печатать первый макет, если вКл - то второй макет.
код печати оставить одинаковым.
подредактировать типа:
Таб.ИсходнаяТаблица("Таблица"+флШтрихкод);
ВСЁ.
Добиться, чтобы печаталось тупо правильно (пусть и не особо красиво) при разных значениях флажка.
194 - 17.12.2021 - 21:38
Иметь в виду, что при выводе печатной формы штрихкод в сформированной печатной форме МОЖДЕТ НЕ ОТОБРАЖАТЬСЯ (если поле штрихкода маленькое), но он там есть! При ПРЕДПРОСМОТРЕ может отображаться или при масштабе печформы может отображаться. Если не отображается - то где-то в уголке может притаиться надпись Size - слева оригинальный масштаб, справа 200% При выводе непосредственно на принтер - даже если не отображается - обычно печатается нормально.
Иногда надо чуток поварьировать размером "поля" под штрихкод.

195 - 17.12.2021 - 21:41
183-bma1 > "Редко понимая всякие особенности клиент-серверной схемы, что где существует и что где выполняется."
- тут как раз на Мисте обсуждение на эту тему.
мне вот в принципе все достаточно понятно (ну может совсем за исключением каких-то тонкостей). Написание обработок для ТСД на 77 под RDP быстро привело к тому что даже в одной обработке весьма разделены функции вывода на экран и функции получения/обработки данных.
196 - 17.12.2021 - 21:43
191-tutsi > А какой возраст/класс киндеров?
Может мне к вам репетитором по 77 записаться?
Если что - стукайтесь здесь в личку или в скайп (вроде где-то выше давал) или в мессенджеры если тлф знаете.
197 - 17.12.2021 - 21:46
191-tutsi > если лабы в классе. на время - то это имхо круто, для этого д.б. уже готовые "блоки" от препода или заранее для выполнения лабы имхо. Жуть не люблю программировать на время.
Гость
198 - 18.12.2021 - 15:28
Всем спасибо! Со всем разобрались!
Объяснила детям, что тупым копированием из одной обработки в другую, программировать нельзя. Проработали с ними суть задачи. Они всё сделали сами!!! Я, прям, не седьмом небе от счастья!
Цитата:
Сообщение от Чучундер Посмотреть сообщение
А какой возраст/класс киндеров?
Первый-второй курс колледжа. Младшему 17 через два дня исполняется.
Семерка у них и на первом, и на втором курсе. На втором уже и восьмерку изучают.
Честно говоря, я сначала была в шоке от программы. Ну зачем учить семерку, если она уже мертвая? Но теперь поняла суть. Он просто заставляет их думать разными масштабами. Они много "мертвых" вещей изучают. Но от этого есть польза в перспективе.
Сейчас учатся племянники. Сын уже в университете. Вспоминает, как мы с ним выполняли эти задания по семерке, с юмором. Но говорит, что теперь понимает, что не существует одного варианта решения задачи. Их всегда много. И важно найти самый простой и быстрый.
Гость
199 - 18.12.2021 - 15:34
Цитата:
Сообщение от Чучундер Посмотреть сообщение
если лабы в классе. на время - то это имхо круто, для этого д.б. уже готовые "блоки" от препода или заранее для выполнения лабы имхо. Жуть не люблю программировать на время.
У них есть методичка. К этой методичке существуют базы, в которых они лабы делают. Причем не одна база, а именно базы. То есть, всё реально круто. И есть задания на время. Простые.
200 - 18.12.2021 - 20:55
"Они много "мертвых" вещей изучают."
- ну, основы даже в мертвых - те же самые. И даже м.б. "мертвые" в этом отношении лучше, так как ближе с основам. А то будут "расставлятелями галочек"


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






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