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

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

GROOVY

  • Администратор
  • Старожил
  • *****
  • Сообщений: 284
  • ФИО: Павел Чистов
Re: 1.3
« Ответ #180 : Июль 19, 2015, 01:42:20 pm »
Сделал на 1 РН

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

alex1248

  • Призрак форума
  • *****
  • Сообщений: 714
Re: 1.3
« Ответ #181 : Июль 19, 2015, 03:34:17 pm »
Сделал на 1 РН

Уже минус 2 балла, так как неверно спроектированы регистры и не используется методика оперативного проведения.
Павел, добрый день!
Т.е. во всех (или почти во всех, т.е. когда это возможно) задачах ОУ рекомендуется использовать 2 РН - для контроля остатков и учета себестоимости, и даже в том случае, когда контроль остатков и расчет себестоимости производится по одним и тем же измерениям?
(Посмотрел много вариантов, и в большинстве 1 РН на эти дела, и контроль остатков по "старой методике". Получается, что все эти решения методически неверны?)


seravkin

  • Пользователь
  • **
  • Сообщений: 22
  • ФИО: Серавкин Константин
Re: 1.3
« Ответ #182 : Август 10, 2015, 11:47:22 pm »
Сделал на 1 РН
Уже минус 2 балла, так как неверно спроектированы регистры и не используется методика оперативного проведения.

Условие задачи:
В документе «Расходная накладная», в табличной части для каждого товара пользователь указывает партию, которую необходимо списать. В том случае, если товара по указанной партии не хватает, документ не проводится и выводится соответствующее сообщение о нехватке.

Я так понимаю, что партия должна быть указана обязательно и контроль остатков нужен в разрезе двух измерений: Номенклатура и Партия. Для чего в этом случае разбивать на два РН? Не посчитается ли это минусом как добавление лишнего регистра?

seravkin

  • Пользователь
  • **
  • Сообщений: 22
  • ФИО: Серавкин Константин
Re: 1.3
« Ответ #183 : Август 11, 2015, 12:47:02 am »
Буду рад комментариям. Вроде получилось коротко и красиво. Остался вопрос с моментом времени для контроля остатков.

Не используется оперативное проведение. Для чего запрашивать количество остатков по партии перед проведением? Можно списать как есть, а после проверить, не ушли ли остатки в минус

seravkin

  • Пользователь
  • **
  • Сообщений: 22
  • ФИО: Серавкин Константин
Re: 1.3
« Ответ #184 : Август 11, 2015, 01:10:19 am »
свое решение воткнул :)

Не используется "новая методика проведения", нет защиты против оперативного перепроведения документов (остатки считываются с учетом собственных движений, т.к. МоментВремени() каждый раз смещается)

seravkin

  • Пользователь
  • **
  • Сообщений: 22
  • ФИО: Серавкин Константин
Re: 1.3
« Ответ #185 : Август 11, 2015, 02:32:31 am »
Мое решение.
Сделал на 1 РН, с проверкой по остаткам и остаткам по партии.
Буду благодарен за просмотр и конструктивную критику варианта решения.

Индекс по ЭтоТовар - лишний. Во-первых, примитивного типа и смысла его индексировать нету, а во-вторых - отбор по ЭтоТовар в полученный составной индекс всё равно не попадает.


seravkin

  • Пользователь
  • **
  • Сообщений: 22
  • ФИО: Серавкин Константин
Re: 1.3
« Ответ #186 : Август 14, 2015, 12:01:35 am »
Выкладываю свой вариант, буду благодарен за критику

ak8647

  • Пользователь
  • **
  • Сообщений: 65
Re: 1.3
« Ответ #187 : Август 19, 2015, 04:31:45 pm »
Все-таки как правильно делать блокировки по РН ОстаткиНоменклатуры?
1)Блокировка = Новый БлокировкаДанных;
    ЭлементБлокировки = Блокировка.Добавить("РегистрНакопления.ОстаткиНоменклатуры");
    ЭлементБлокировки.Режим = РежимБлокировкиДанных.Исключительный;
    ЭлементБлокировки.ИсточникДанных = СписокНоменклатуры;
    ЭлементБлокировки.ИспользоватьИзИсточникаДанных("Номенклатура", "Номенклатура");
    ЭлементБлокировки.ИспользоватьИзИсточникаДанных("Партия", "Партия");
    Блокировка.Заблокировать();
   
    2)Движения.ОстаткиНоменклатуры.БлокироватьДляИзменения = Истина;
    Движения.ОстаткиНоменклатуры.Записать();

Или 2 пункт не нужен??

GROOVY

  • Администратор
  • Старожил
  • *****
  • Сообщений: 284
  • ФИО: Павел Чистов
Re: 1.3
« Ответ #188 : Август 19, 2015, 08:40:02 pm »
Все-таки как правильно делать блокировки по РН ОстаткиНоменклатуры?
1)Блокировка = Новый БлокировкаДанных;
    ЭлементБлокировки = Блокировка.Добавить("РегистрНакопления.ОстаткиНоменклатуры");
    ЭлементБлокировки.Режим = РежимБлокировкиДанных.Исключительный;
    ЭлементБлокировки.ИсточникДанных = СписокНоменклатуры;
    ЭлементБлокировки.ИспользоватьИзИсточникаДанных("Номенклатура", "Номенклатура");
    ЭлементБлокировки.ИспользоватьИзИсточникаДанных("Партия", "Партия");
    Блокировка.Заблокировать();
   
    2)Движения.ОстаткиНоменклатуры.БлокироватьДляИзменения = Истина;
    Движения.ОстаткиНоменклатуры.Записать();

Или 2 пункт не нужен??

Вы нифига не понимаете в том что пишете.

Foreman76

  • Пользователь
  • **
  • Сообщений: 10
Re: 1.3
« Ответ #189 : Август 20, 2015, 07:41:11 am »
Для GROOVY Павел подскажите лучше, почему в документе переоценка (если задача связана с валютой)
мы не ставим блокировку на Управленческий.  (А ведь читаем остатки сначала запросом и только потом движения в зависимости от Разницы)

ak8647

  • Пользователь
  • **
  • Сообщений: 65
Re: 1.3
« Ответ #190 : Август 20, 2015, 08:16:39 am »
Все-таки как правильно делать блокировки по РН ОстаткиНоменклатуры?
1)Блокировка = Новый БлокировкаДанных;
    ЭлементБлокировки = Блокировка.Добавить("РегистрНакопления.ОстаткиНоменклатуры");
    ЭлементБлокировки.Режим = РежимБлокировкиДанных.Исключительный;
    ЭлементБлокировки.ИсточникДанных = СписокНоменклатуры;
    ЭлементБлокировки.ИспользоватьИзИсточникаДанных("Номенклатура", "Номенклатура");
    ЭлементБлокировки.ИспользоватьИзИсточникаДанных("Партия", "Партия");
    Блокировка.Заблокировать();
   
    2)Движения.ОстаткиНоменклатуры.БлокироватьДляИзменения = Истина;
    Движения.ОстаткиНоменклатуры.Записать();

Или 2 пункт не нужен??

Вы нифига не понимаете в том что пишете.

Хотелось бы разобраться, вот и спрашиваю

Foreman76

  • Пользователь
  • **
  • Сообщений: 10
Re: 1.3
« Ответ #191 : Август 20, 2015, 08:37:43 am »
ak8647 не обижайся просто эта тема особенно для проведения документов в задачах по ОУ уже такая избитая
по твоему вопросу

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

ak8647

  • Пользователь
  • **
  • Сообщений: 65
Re: 1.3
« Ответ #192 : Август 20, 2015, 09:40:52 am »
ak8647 не обижайся просто эта тема особенно для проведения документов в задачах по ОУ уже такая избитая
по твоему вопросу

контроль остатков сначала пишеш потом читаеш
поэтому сначала идет конструкция Движения.ОстаткиНоменклатуры.БлокироватьДляИзменения = Истина; (это только маркер)
блокировка будет когда Движения.Записать()
а потом нужно списать себестоимость
а там уже ты сначала читаеш потом пишеш
поэтому
Блокировка = Новый БлокировкаДанных;
    ЭлементБлокировки = Блокировка.Добавить("РегистрНакопления.ОстаткиНоменклатуры");
    ЭлементБлокировки.Режим = РежимБлокировкиДанных.Исключительный;
    ЭлементБлокировки.ИсточникДанных = СписокНоменклатуры;
    ЭлементБлокировки.ИспользоватьИзИсточникаДанных("Номенклатура", "Номенклатура");
    ЭлементБлокировки.ИспользоватьИзИсточникаДанных("Партия", "Партия");
    Блокировка.Заблокировать();
это если ну ооочень кратко
Спасибо большое! Я просто в ветке смотрел "Для тех кто сейчас в процессе подготовки", а там все обсуждают с чего начать. Мне кажет нужно брать и делать, а если что, спросить у тех кто с этим сталкивался. Еще раз спасибо.

ak8647

  • Пользователь
  • **
  • Сообщений: 65
Re: 1.3
« Ответ #193 : Август 20, 2015, 09:43:58 am »
ak8647 не обижайся просто эта тема особенно для проведения документов в задачах по ОУ уже такая избитая
по твоему вопросу

контроль остатков сначала пишеш потом читаеш
поэтому сначала идет конструкция Движения.ОстаткиНоменклатуры.БлокироватьДляИзменения = Истина; (это только маркер)
блокировка будет когда Движения.Записать()
а потом нужно списать себестоимость
а там уже ты сначала читаеш потом пишеш
поэтому
Блокировка = Новый БлокировкаДанных;
    ЭлементБлокировки = Блокировка.Добавить("РегистрНакопления.ОстаткиНоменклатуры");
    ЭлементБлокировки.Режим = РежимБлокировкиДанных.Исключительный;
    ЭлементБлокировки.ИсточникДанных = СписокНоменклатуры;
    ЭлементБлокировки.ИспользоватьИзИсточникаДанных("Номенклатура", "Номенклатура");
    ЭлементБлокировки.ИспользоватьИзИсточникаДанных("Партия", "Партия");
    Блокировка.Заблокировать();
это если ну ооочень кратко
Спасибо большое! Я просто в ветке смотрел "Для тех кто сейчас в процессе подготовки", а там все обсуждают с чего начать. Мне кажет нужно брать и делать, а если что, спросить у тех кто с этим сталкивался. Еще раз спасибо.
И еще, можно мне ссылку, где эту тему "избивают". Хотелось бы почитать.

Foreman76

  • Пользователь
  • **
  • Сообщений: 10
Re: 1.3
« Ответ #194 : Август 20, 2015, 10:37:55 am »