Автор Тема: Задача 1.01  (Прочитано 176770 раз)

0 Пользователей и 1 Гость просматривают эту тему.

esa_makss

  • Новичок
  • *
  • Сообщений: 0
  • ФИО: Соня
Задача 1.01
« : Май 26, 2010, 03:11:34 pm »
Подскажите пожалуйста как делать отбор в форме списка Расходной. Делаю через критерий отбора, но ничего не получается

Добавлено (26.05.2010, 15:11)
---------------------------------------------
Извините, нашла обсуждение этого вопроса


Нуб

  • Новичок
  • *
  • Сообщений: 0
  • ФИО: Школяр
Задача 1.01
« Ответ #1 : Июнь 05, 2010, 01:06:27 pm »
Раз уж нашла, то отписала бы как делать, ведь нашла - поделись с другими )


Silverman

  • Новичок
  • *
  • Сообщений: 5
  • ФИО: Silverman
Задача 1.01
« Ответ #2 : Июнь 08, 2010, 11:03:20 am »
как в 8.1 сделать не получится. можно из форм списка (или элемента, точно не помню) номенклатуры вызвать форму критериев отбора и в этой форме отобразить нужные документы.

d1mka22091988

  • Новичок
  • *
  • Сообщений: 5
  • ФИО: Дмитрий
Задача 1.01
« Ответ #3 : Сентябрь 06, 2010, 11:10:28 am »
Доброго времени суток! Вот начал подготовку к специалисту на 8.2 и тут же стало возникать много вопросов. Сделал первую задачу и хочу попросить чтобы более опытные товарищи посмотрели и сказали правильно ли я ее сделал. Больше всего интересует модуль документа "Расходная накладная", на отчетах сильно не заморачивался пока...

d1mka22091988

  • Новичок
  • *
  • Сообщений: 5
  • ФИО: Дмитрий
Задача 1.01
« Ответ #4 : Сентябрь 06, 2010, 11:12:07 am »
Вот база (с первого раза не прикрепилась):
Вложения:
7436561.dt

Amali

  • Новичок
  • *
  • Сообщений: 0
  • ФИО: Алеся
Задача 1.01
« Ответ #5 : Сентябрь 06, 2010, 06:29:57 pm »
d1mka22091988,
 Явные ошибки -
 1) У пользователя нету возможности изменить учетную политику.
 2) В проведении расх. накл. в запросе есть условие выбора номенклатуры из таб части документа -
 "И (НЕ РасходнаяНакладнаяСписокНоменклатуры.Номенклатура.Услуга)" - и из за этого номенклатура с видом "Услуга" никогда не попадет в регистр "Продажи" и соответственно в отчет "Продажи".

d1mka22091988

  • Новичок
  • *
  • Сообщений: 5
  • ФИО: Дмитрий
Задача 1.01
« Ответ #6 : Сентябрь 06, 2010, 06:49:10 pm »
Amali, согласен по обоим пунктам. А есть ли еще какие нибудь недочеты? Правильно ли я блокирую регистр в обработке проведения. Просто слышал разные мнения, в том числе и на этом форуме, что нужно блокировать регистр перед чтением чтобы пока мы читаем остатки, никто другой не мог их поменять (я так и делал установив БлокироватьДляИзменения = Истина). По мнению других, регистр надо блокировать только при записи с помощью БлокировкаДанных. Как же все таки правильно для сдачи экзамена?:)
« Последнее редактирование: Сентябрь 06, 2010, 06:50:07 pm от Дмитрий »

SergTH000

  • Новичок
  • *
  • Сообщений: 0
  • ФИО: Сергей
Задача 1.01
« Ответ #7 : Сентябрь 07, 2010, 08:10:56 am »
d1mka22091988,
 
Quote
Движения.ОстаткиНоменклатуры.Очистить();
 1.Движения.ОстаткиНоменклатуры.Записать();

 Достаточно просто Движения.ОстаткиНоменклатуры.Записать();
 2.Зачем тебе итоги по партии? Достаточно по номенклатуре
 3.
Quote
Если НадоСписать = 0 Тогда Прервать;
лучше Пока Выборка.Следующий И НадоСписать > 0
 Это ерунда в принципе. А вот блокировки используешь не верно. БлокироватьДляИзменения применяется, когда ты сначала записываешь данные в регистр, а потом делаешь запрос, к этому регистру. Сделай поиск по форуму, здесь очень много про это писали. В этой задаче, ты сначала делаешь запрос, а потом запись в этот регистр, нужно создавать объект БлокировкаДанных и самому описывать измерения по которым ты будешь блокировать его.

Добавлено (07.09.2010, 08:10)
---------------------------------------------
d1mka22091988,

Quote
Если НадоСписать<ВыборкаПартий.КолОСт Тогда
                КолСписание = НадоСписать;
                СуммСписание = ВыборкаПартий.СуммОст/ВыборкаПартий.КолОСт*НадоСписать;
             Иначе
                КолСписание = ВыборкаПартий.КолОст;
                СуммСписание = ВыборкаПартий.СуммОСт;
             КонецЕсли;

 Проще так: КолСписание = МИН(НадоСписать, КолОст)
 А проблему копеек решает СуммСписание = КолСписание/КолОст*СуммаОст
« Последнее редактирование: Сентябрь 07, 2010, 08:01:25 am от Сергей »

Heckfy

  • Пользователь
  • **
  • Сообщений: 13
  • ФИО: Руслан
Задача 1.01
« Ответ #8 : Сентябрь 30, 2010, 01:25:52 pm »
Классическая задача.
Вложения:
1.01.dt

Danan

  • Новичок
  • *
  • Сообщений: 0
  • ФИО: Данияр
Задача 1.01
« Ответ #9 : Октябрь 03, 2010, 02:37:13 pm »
Доброго времени суток.
 Мой вариант решения задачи.

Особо интересует мнения по отчету а конкретно работа с вариантами, правильно ли?

Ну и конечно же управляемые блокировки в проведении расходной накладной. Читал на форумах и в литературе про эти самые блокировки, но использую впервые.

А также в общем и целом решение этой задачи в среде 8.2.

Буду рад конструктивной критике.


Вложения:
Task_1_1.dt
« Последнее редактирование: Октябрь 03, 2010, 02:37:49 pm от Данияр »

SergTH000

  • Новичок
  • *
  • Сообщений: 0
  • ФИО: Сергей
Задача 1.01
« Ответ #10 : Октябрь 03, 2010, 07:04:14 pm »
ПриходнаяНакладнаяСписокНоменклатуры.Ссылка.Дата КАК Период,
 ПриходнаяНакладнаяСписокНоменклатуры.Ссылка КАК Партия

Плохо обращаться через точку к полю Дата, лучше написать:
 ВЫБРАТЬ &Дата КАК Период, а потом установить параметр

Про расходную.На курсах в 1с обращают внимание, что не стоит без надобности выгружать результат запроса в ТЗ, просто обходить выборкой. Как говорил Белоусов единственная задача, где эта выгрузка оправдана это 1.19

Про отчет - проще всего завести ресурс себестоимость в продажах и он строится элементарно.

Блокировки - все верно у тебя.


Danan

  • Новичок
  • *
  • Сообщений: 0
  • ФИО: Данияр
Задача 1.01
« Ответ #11 : Октябрь 04, 2010, 12:51:31 am »
SergTH000, по порядку:
 1) Обработка в приходной накладной - твоя правда, благодарю.

2) В обработке расходной накладной я не выгружаю результат запроса сразу в тз.
 При обходе результата запроса формируется таблица значения, которая потом загружается в регистр накопления. Дело в том что формировать движения по регистру загружая тз в набор записей быстрее чем формировать каждую строчку.
 В видео лекции Павла Чистова об этом как раз говорится. Начиная с 5:00 - 5:30. Вот ссылка: http://vimeo.com/8150615.

Что касается выгрузки результата запроса в тз об этом написано в правилах по аттестации, в списке наиболее часто встречающихся ошибок.

3) Еще один ресурс в регистре продажи - это избыточность на мой взгляд, ведь можно получить ту же себестоимость из регистра накопления. Но я не об этом.
 Меня интересовало мнение людей по поводу работы с вариантами отчета, работы с наборами данных. И поскольку в задании явно указано что отчет должен выдавать информацию о продажах и остатках, то сколько вариантов отчета должно быть один, два или три?

« Последнее редактирование: Октябрь 04, 2010, 12:55:13 am от Данияр »

SergTH000

  • Новичок
  • *
  • Сообщений: 0
  • ФИО: Сергей
Задача 1.01
« Ответ #12 : Октябрь 04, 2010, 06:23:48 am »
Quote
В обработке расходной накладной я не выгружаю результат запроса сразу в тз.
 При обходе результата запроса формируется таблица значения, которая потом загружается в регистр накопления. Дело в том что формировать движения по регистру загружая тз в набор записей быстрее чем формировать каждую строчку.
 В видео лекции Павла Чистова об этом как раз говорится. Начиная с 5:00 - 5:30. Вот ссылка

 Конечно, я ее видел=) это лекция старая, потом сам Чистов, на последующих вебинарах стал делать все обыной выборкой. Это просто совет.
 
Quote
Меня интересовало мнение людей по поводу работы с вариантами отчета, работы с наборами данных. И поскольку в задании явно указано что отчет должен выдавать информацию о продажах и остатках, то сколько вариантов отчета должно быть один, два или три?

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

Danan

  • Новичок
  • *
  • Сообщений: 0
  • ФИО: Данияр
Задача 1.01
« Ответ #13 : Октябрь 05, 2010, 05:23:35 pm »
SergTH000, Спасибо за совет, я подумаю над ним.
 Я так понял ты уже бывал на экзамене.
 А если формировать движения по регистру таким образом:

Code
Движения.ОстаткиНоменклатуры.Загрузить(РезультатЗапроса.Выгрузить());

У меня так приходной накладной.


SergTH000

  • Новичок
  • *
  • Сообщений: 0
  • ФИО: Сергей
Задача 1.01
« Ответ #14 : Октябрь 05, 2010, 05:30:01 pm »
Danan, Да так можно и я так делал на экзамене (правда не для приходной, делай ее лучше конструктором время сэкономишь, а в расчетных задачах). Остальное делал обычной выборкой. По коду препод сделал лишь одно замечание (хотя из того что опер я сделал не так смотрел очень внимательно) по расчетным задачам, что в общем модуле не надо писать

Запись = НаборЗаписей[Выборка.НомерСтроки - 1] , написал об этом Павлу, он согласился и предложил использовать метод набора Найти(), куда передавать структуру с номер строки. Так кстати делают на курсах в 1с.