Домашнее задание №8 базового курса
2-ое задание по второму блоку базового курса.
Для выполнения рекомендуется изучить следующие главы 2-го блока.
Глава 4. Настройка форм документов.
Глава 5. Журналы документов.
Глава 6. Настройка командного интерфейса.
Глава 7. Регистры.
Глава 8. Регистры накопления.
Глава 9. Регистры сведений.
Глава 10. Настройка форм.
К сожалению, у Вас недостаточно прав для просмотра этой записи. Если Вы еще не залогинены на сайте — залогиньтесь. Если Вы оплачивали курс, у Вас активирован токен доступа, Вы залогинены, но Вы видите эту запись — напишите нам на e-mail поддержки.
Евгений, Вы несколько раз говорили, что каждое обращение через точку – это дополнительный запрос к базе данных. Например, если нам доступен объект Ссылка, и требуется несколько раз обращаться к реквизитам типа Ссылка.Товар, Ссылка.Количество. А если объявить переменную ТекДок=Ссылка, то строка ТекДок.Товар избавит нас от лишнего обращения к базе данных? Или лучше объявлять переменные ТекТовар=Ссылка.Товар и работать с ней?
ДЗ №8 сделано.
В приведенном примере объявление переменной ТекДок не поможет, ведь там будет содержаться таже ссылка.
А вот если Ссылка.Товар используется несколько раз (возможно в цикле), то правильнее объявить переменную ТекТовар=Ссылка.Товар
Готово!
Домашнее задание выполнено.
Вроде как полегче становится несмотря на то, что задания с каждым разом все сложнее
Это показатель!
ДЗ №8 выполнил
Задание выполнено
Задание выполнил
ДЗ 8 Сделал.
Задание выполнила.
Выполнила. Опять сложнее всего было с клиентом и сервером. Особенно с клиентом :)
И еще в некоторых моментах поняла формулировку задания не так, как Вы разобрали в решении ДЗ. Пришлось переделывать.
Задание выполнил
Сделал.
ДЗ №8 сделал.
“Неделя “передышки” нашего курса подходит к концу…” – это вы наверное пошутили. Пока об отдыхе и не мечтаю.
Перемена труда это отдых :)
Вначале смотрите мастер-группу, потом переключаетесь на изучение курса, далее выполняете домашние задания :)
Да, надо менять подход в обучении. А то точно не успею. Ну ведь все равно хочется пощупать всё руками. Наверное “щупать” придется позже.
Выполнил.
Домашку номер 8 сделала.
Выполнено.
Результат = Запрос.Выполнить().Выгрузить();
Движения.ОстаткиТовара.Загрузить(Результат);
Вид движения записался как Приход. Как сделать, чтоб Вид движения был Расход?
Попробуйте в запросе выбрать значение системного перечисления ВидДвиженияНакопления.Расход.
Поле назовите “ВидДвижения”.
Задание выполнено.
Большую часть времени потратил на реализацию хранение цен в разрезе различных единиц измерения и на клиент-серверные вызовы при разработке процедур пересчета данных в ТЧ документов.
Посмотрим, что там в эталонном. :)
Сделано
ДЗ 8 сделал
ДЗ 8 Выполнил.
Как обычно сначала сделал сам, затем посмотрел ваше решение и всё переделал.
Спасибо. Ваш проект – супер!
Спасибо!
Точно-точно, как бы сам не сделал, всё равно есть отличия.
Хотя и сходств в решении заданий всё больше ;)
Было сделано, подтверждаю
ДЗ 8 выполнено
ДЗ Выполнил. Сложностей не возникло.
ДЗ№8 выполнил.
ДЗ №8 выполнила, трудности были с выбором варианта пересчета при изменении суммы.
Сделано.
Задание 8 сделал
Дз 8 сделал наконец-то.
Задание выполнил. Мне кажется немного некорреткно поставлена задача “Создайте объект, для хранения данных о закупках от поставщиков…”. По большому счету, в регистре хранения остатков мы можем получить эту информацию. Какой объект подразумевался?
Оборотный регистр накопления.
Выполнено. Наверное, криво. Пойду смотреть эталонное решение.
Выполнил.
Сделано. Эффективно ли проверять изменял ли пользователь единицу измерения в спр. номенклатура, в обработке выбора реквизита ед. изм.?
Логичней делать это в момент записи.
Ведь пользователь мог поменять единицу, а потом сам осознать тяжесть содеянного и не записать элемент :)
8 задание, сделано.
Сделала запрет изменения единицы изменения установкой доступности реквизита при открытии формы. Или это не оптимально проверять каждый раз?
Вообще, заметила странную закономерность, четные задания для меня проще , чем нечетные.;))))
Думаю, что не стоит каждый раз при открытии проверять были ли движения по номенклатуре..
Думаю, закономерность чисто случайная )))
Сделала, цены – через справочник ТипыЦен, Регистр сведений ЦеныНоменклатуры со ссылкой измерения на справочник и удокументов добавила реквизит Прайс со ссылкой на справочник.
&НаКлиенте
Процедура ТоварыНоменклатураПриИзменении(Элемент) – заполняет цену и считает сумму, для чего вызывает
&НаСервереБезКонтекста
Функция ПолучитьЦену(Ссылка,Прайс) – запросом к регистру сведений ЦеныНоменклатуры и Возврат Цена.
Работает.
Проведение и движения регистров – тоже нормально.
Вот только как регистры у меня в интерфейсе вызываются – не очень устраивает.
ОстаткиТоваров – в форме документа, а регистр сведений ЦеныНоменклатуры – вообще через Все функции заполняю.
Не нашла, как сделать удобнее.
Нашла, как отдельно регистры сведений смотреть аналогично документам.
Но, хотелось бы видеть движения от документов в регистрах сведений и накопления, не открывая форму документа.
Это возможно?
Типа кнопки “Перейти” в 8.1?
Стандартно такого функционала нет, нужно создавать свою собственную обработку проверки движений..
Да, хотела именно такую кнопку найти.
Можно регистры вывести в командный интерфейс, в панель навигации..
Да, у меня там был уже регистр сведений, добавила и регистр накоплений.
Но, кнопка Перейти – была в 8.1 все-таки удобнее.
По новой концепции считается, что данные регистров не являются необходимым для пользователей средством.
Поэтому от кнопки отказались..
Задание выполнил. Выполнять было интересно.
От себя добавил пересчет при смене единицы измерения и типа цен.
Пересчет цены при смене номенклатуры или единицы измерения делал в общем модуле, куда передавал структуру параметров строки документа и назад получал уже пересчитанную структуру. Пересчет при изменении суммы, количества и цены делал на клиенте. Чтобы не опрашивать константу МетодПересчета (не обращаться к серверу) при изменении суммы, значение ее хранил в глобальной переменной, которую сравнивал с ПредопределенноеЗначение(“Перечисление.МетодыПересчета…”) прямо на клиенте.
Контроль смены базовой единицы номенклатуры вел через событие ПередЗаписью в модуле объекта с помощью запроса к физич.таблицам рег. сведений ЦеныНоменклатуры и ОстаткиНоменклатуры. В каждом запросе выбирал по одному значению, запросы объединил (ОБЪЕДИНИТЬ ВСЕ). Если результат запроса не пустой – отказ от записи.
Выполнено.
Выполнено… Как ни странно опять трудности были с пересчетом цены\количества при изменении суммы. Оказывается еще не очень хорошо соображаю как в таких ситуациях работать между клиентом и сервером :(
Вопрос: Как проверить что пользователь изменил значение реквизита (по аналогии с SQL Old, New) Я использую – Если ЭтотОбъект.Ссылка.ПолучитьОбъект().БазоваяЕдиницаИзмерения ЭтотОбъект.БазоваяЕдиницаИзмерения Тогда – это оптимально?
Да это нормально.
Только ЭтотОбъект в данном случае можно убрать – будет тоже самое..
В данном случае вопрос не в смене значения БазовойЕдиницы, а в изменении БазовойЕдиницы товара присутствующего в записях регистров (Цены, Остатки)
Готово…ну и задания пошли)
Менеджеров все же сделал с типом сотрудники. А пользователей связал с сотрудниками через реквизит.
Все пересчеты, получение цен в одном клиент-серверном модуле. (без вызова сервера)
Очень сложно проходит привыкание к клиент-серверу. =)
Тут главное попасть на сервер с нужными данными, затем психологически все так просто становиться (!)…потом опять все сложно, когда надо вернуть что нить на клиента!
вроде сделал. по поводу запрета изменения базовой единицы есть вопрос. в какой момент контролировать? при попытке записать элемент номенклатуры или закрыть доступность на форме при открытии формы. на всякий случай сделал и так и так.
Я считаю, что достаточно контролировать в момент записи элемента..
А история закрепления менеджеров нужна? Тогда в РС храним.
“Цены задаются пользователем самостоятельно.” – это в смысле типы цен?
В смысле регистр без подчинения регистратору.
у меня менеджеры в реквизите просто, а цены с помощью документа в РС. Так проще, чем их вбивать.