Автор Тема: 1.5  (Прочитано 132329 раз)

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

User67

  • Новичок
  • *
  • Сообщений: 0
  • ФИО: Юрий
1.5
« Ответ #30 : Сентябрь 07, 2010, 09:07:01 pm »
Подскажите для самообразования) Как правильней при старой методике проведения: сначала очищаем движения, потом накладываем блокировку (как обычно в примерах показывают) или сначала блокируем. Просто Если заблокировать не получится зачем очищать?

Добавлено (07.09.2010, 21:07)
---------------------------------------------
Сравнил три выложенные конфигурации (1.5.dt,3400157.dt,Zhora_Vlg-1.5.dt) и везде отличается математика списания в расходной накладной. napan В случае списания по средней берет общую себестоимость, но при этом может получиться что по этой партии поступила одна сумма, а списывается совсем другая - например пришло 10 на 100 р, потом списываем 9 и средняя допустим 15 р, то будет вычитаться 135. В решении Zhora_Vlg, списывается себестоимость по каждой партии, т.е. при списании по средней только приходная с пустой партией записывается и все. Может я что-то не уловил, поясните по возможности пожалуйста. Да в примере отчета остатков (задание) все партии заполнены, пустых партий нет.


ut2k5

  • Новичок
  • *
  • Сообщений: 0
  • ФИО: Максим
1.5
« Ответ #31 : Сентябрь 09, 2010, 12:29:04 pm »
1C_CoderVamp, в твоем решении метод списания стоит в измерении, надо бы его в ресурс - регистр сведений без измерений
 на мой взгляд ошибочка....
 и еще вопрос, а разве не будет ошибкой если два разных текста запроса в расходной?... в зависимости от метода списания
 но с другой стороны одним запросом не реально, а если и реально, то громоздко...


ut2k5

  • Новичок
  • *
  • Сообщений: 0
  • ФИО: Максим
1.5
« Ответ #32 : Сентябрь 10, 2010, 03:13:12 pm »
люди, внимание, задача решается одним запросом в расходной накладной, если учесть расчет себестоимости просто на разных уровнях группировки... т.о. при средней партию списывать надо как при фифо, плиз покритикуйте...

Добавлено (10.09.2010, 15:13)
---------------------------------------------
ау..., народ Вы где, посмотрите мое решение плиз, очень интересны Ваши мнения...


Вложения:
Quest_1_5.dt

Mихаил

  • Новичок
  • *
  • Сообщений: 7
  • ФИО: Михаил
1.5
« Ответ #33 : Сентябрь 16, 2010, 01:32:57 pm »
Quote (napan)
Вот переделал списание по средней
 Прикрепления: 0588822.dt(223Kb)

1.какой смысл выделять в документе расходная накладная "списание по средней"? мне кажется, списание по средней корректно выполнялось бы той же самой процедурой "СписаниеЛИФО_ФИФО".

2. в документе "Учетная политика" установлен режим блокировки "автоматический". есть ли смысл тогда при его проведении использовать управляемые блокировки?

« Последнее редактирование: Сентябрь 16, 2010, 01:43:09 pm от Михаил »

ut2k5

  • Новичок
  • *
  • Сообщений: 0
  • ФИО: Максим
1.5
« Ответ #34 : Сентябрь 16, 2010, 01:51:05 pm »
Mихаил, есть ли смысл тогда при его проведении использовать управляемые блокировки?
 конечно есть, ведь у все конфигурации стоит "управляемый", следовательно у объекта это свойство игнорится, а не игнорится когда у всей конфы стоит "автоматический и управляемый"

Mихаил

  • Новичок
  • *
  • Сообщений: 7
  • ФИО: Михаил
1.5
« Ответ #35 : Сентябрь 19, 2010, 07:25:56 pm »
Quote (napan)
Вот переделал списание по средней
 Прикрепления: 0588822.dt(223Kb)

В документе "Учетная политика" есть кусок кода:

Code
Блокировка = Новый БлокировкаДанных;
   ЭлементБлокировки = Блокировка.Добавить("РегистрНакопления.ОстаткиНоменклатуры");
   ЭлементБлокировки.Режим = РежимБлокировкиДанных.Исключительный;
   Блокировка.Заблокировать();

Я так понимаю, что блокировка в данном случае не сработает, так как не задан ни один элемент объекта "Блокировка".
 В данном случае, наверно, регистр надо блокировать методом "ЗаблокироватьДанныеДляРедактирования()"..., может кто подскажет?


1C_CoderVamp

  • Новичок
  • *
  • Сообщений: 0
  • ФИО: Василий
1.5
« Ответ #36 : Сентябрь 19, 2010, 11:11:25 pm »
Quote (ut2k5)
и еще вопрос, а разве не будет ошибкой если два разных текста запроса в расходной?... в зависимости от метода списания
 но с другой стороны одним запросом не реально, а если и реально, то громоздко...

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

aworld

  • Новичок
  • *
  • Сообщений: 0
  • ФИО: Хасанов Амир Ринатович
1.5
« Ответ #37 : Сентябрь 20, 2010, 01:39:53 am »
1C_CoderVamp, видимо этот преподаватель не видел запросов в типовых конфигах) особенно ЗУП )
 там рука устает скроллить эти запросы)
« Последнее редактирование: Сентябрь 20, 2010, 01:40:20 am от Хасанов Амир Ринатович »

1C_CoderVamp

  • Новичок
  • *
  • Сообщений: 0
  • ФИО: Василий
1.5
« Ответ #38 : Сентябрь 20, 2010, 10:39:40 am »
Quote (aworld)
видимо этот преподаватель не видел запросов в типовых конфигах) особенно ЗУП )
 там рука устает скроллить эти запросы)

 нет, он все правильно говорит, если в документе на экзамене большой запрос, после которого готовые данные тупо выгружаются в регистр, то тут возможны 3 варианта:
 1) у вас была куча времени, чтобы навоять его
 2) вы супермутант и мегапостроитель запросов... шучу smile
 3) там по-любому косяк

К тому же, сравни объем данных, который хранится в типовом ЗУП'е и объем данных в задаче на экзамене, в ЗУП'овских запросах данные порой разбиваются на добрый десяток регистров, а на задаче для экзамена их всего десяток (и расчетных, и накоп., и сведений)

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

Поэтому, лично я считаю, не стоит заморачиваться на том сколько у вас запросов в модуле (1 или 2), если вы можете быстро составить большой и красивый запрос, то вперед, но если вы знаете, что с этим возникнут трудности, то оставьте, это не столь принципиально, преподавателю всегда можно будет объяснить свою точку зрения, НО, опять же, я говорю о выездном экзамене


Mихаил

  • Новичок
  • *
  • Сообщений: 7
  • ФИО: Михаил
1.5
« Ответ #39 : Сентябрь 20, 2010, 05:14:02 pm »
Не могу понять свойство документа "Удаление движений": "Удалять автоматически при отмене проведения".
 В теории это в частности означает, что движения не удаляются автоматически при перепроведении уже проведенного документа.

Проверяю это свойство в каркасной конфигурации на примере документа "приходная накладная", значение указанного свойства "Удалять автоматически при отмене проведения".

Если прописать в модуле документа в процедуре проведения следующий текст:

Code
    Движения.ОстаткиНоменклатуры.Записывать = Истина;
   Для Каждого ТекСтрокаСписокНоменклатуры Из СписокНоменклатуры Цикл
    Движение = Движения.ОстаткиНоменклатуры.Добавить();
    Движение.ВидДвижения = ВидДвиженияНакопления.Приход;
    Движение.Период = Дата;
    Движение.Номенклатура = ТекСтрокаСписокНоменклатуры.Номенклатура;
    Движение.Партия = Ссылка;
    Движение.Количество = ТекСтрокаСписокНоменклатуры.Количество;
    Движение.Сумма = ТекСтрокаСписокНоменклатуры.Сумма;
   КонецЦикла;

Документ перепроводится сколько угодно раз, и движения не задваиваются, не дублируются...
 Видимо все-таки движения как-то удаляются, но почему и в какой момент?

Подскажите плиз где я заблуждаюсь, заранее спасибо

« Последнее редактирование: Сентябрь 20, 2010, 05:14:40 pm от Михаил »

1C_CoderVamp

  • Новичок
  • *
  • Сообщений: 0
  • ФИО: Василий
1.5
« Ответ #40 : Сентябрь 20, 2010, 05:29:42 pm »
Quote (Mихаил)
Подскажите плиз где я заблуждаюсь, заранее спасибо

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

Почему создается иллюзия, что все работает как надо: в 8.1, еще до обработки проведения, движения документа в регистре очищались, в 8.2 этого не происходит, т.е. если в 8.1 до твоего кода ты сделаешь: "Движения.ОстаткиНоменклатуры.Прочитать()", то ты получишь пустую таблицу, а в 8.2 (по новой методике) ты получишь движения документа выдранные из регистра.

Попробуй добавить строчку "Движения.ОстаткиНоменклатуры.Прочитать()" и ты увидишь что получится )
 А потом попробуй сделать тоже самое по старой методике


aworld

  • Новичок
  • *
  • Сообщений: 0
  • ФИО: Хасанов Амир Ринатович
1.5
« Ответ #41 : Сентябрь 20, 2010, 05:55:28 pm »
1C_CoderVamp, у меня почему-то уже по-маленьку складывается мнение что на очном экзамене можно втолдычить экзаменатору что белое это черное, а черное это белое smile народ совершенно по-разному решает задачи, главное чтобы была какая-то логика в решении smile

1C_CoderVamp

  • Новичок
  • *
  • Сообщений: 0
  • ФИО: Василий
1.5
« Ответ #42 : Сентябрь 20, 2010, 06:31:12 pm »
Quote (aworld)
у меня почему-то уже по-маленьку складывается мнение что на очном экзамене можно втолдычить экзаменатору что белое это черное, а черное это белое народ совершенно по-разному решает задачи, главное чтобы была какая-то логика в решении

 в смысле?

Добавлено (20.09.2010, 18:31)
---------------------------------------------

Quote (aworld)
можно втолдычить экзаменатору что белое это черное, а черное это белое

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

Но, вернемся к теме, подумай сам, у тебя 4 часа на экзамен и ты сию секунду не знаешь как решить все одним запросом, ну вот не знаешь и все, да, ты можешь это сделать, но на это уйдет много времени и 4х часов тебе не хватит... в то же время ты можешь сделать 2 запроса и решить задачу за вдвое короткое время. Когда преподаватель будет проверять можно объяснить, что времени не хватило сделать все красиво, но ты знаешь как можно сделать красиво и по пунктам расскажешь что для этого нужно сделать. Тогда он согласится и не снизит за это оценку


Mихаил

  • Новичок
  • *
  • Сообщений: 7
  • ФИО: Михаил
1.5
« Ответ #43 : Сентябрь 20, 2010, 06:58:21 pm »
1C_CoderVamp, понял, спасибо

1C_CoderVamp

  • Новичок
  • *
  • Сообщений: 0
  • ФИО: Василий
1.5
« Ответ #44 : Сентябрь 20, 2010, 08:00:50 pm »
Mихаил,
 всегда пожалуйста smile