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

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

BelousovKirill

  • Новичок
  • *
  • Сообщений: 0
  • ФИО: Кирилл
Задача 1.08
« : Июль 09, 2010, 12:45:16 pm »
Граждане,помогите покомпактней реализовать данное головоломко)))
Вложения:
1.08.dt

1C_CoderVamp

  • Новичок
  • *
  • Сообщений: 0
  • ФИО: Василий
Задача 1.08
« Ответ #1 : Июль 21, 2010, 04:11:56 pm »
Это конечно хорошо, но:

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



Tolyas

  • Новичок
  • *
  • Сообщений: 0
  • ФИО: Анатолий
Задача 1.08
« Ответ #2 : Сентябрь 13, 2010, 02:00:02 pm »
Решение работает, но думаю можно сделать оптимальней.
Вложения:
1.8_Tolyas.dt
« Последнее редактирование: Сентябрь 13, 2010, 02:35:05 pm от Анатолий »

bk

  • Новичок
  • *
  • Сообщений: 0
  • ФИО: bikbulatov artur
Задача 1.08
« Ответ #3 : Сентябрь 13, 2010, 04:46:05 pm »
pershinsergei, выкладываю свое решение с отчетом.
Вложения:
1_08.dt

User67

  • Новичок
  • *
  • Сообщений: 0
  • ФИО: Юрий
Задача 1.08
« Ответ #4 : Сентябрь 13, 2010, 07:32:16 pm »
bk, в расходной, если товара в точке не хватает - не проверяется, а хватает ли в отделе закупки, а по заданию должно!

bk

  • Новичок
  • *
  • Сообщений: 0
  • ФИО: bikbulatov artur
Задача 1.08
« Ответ #5 : Сентябрь 13, 2010, 10:00:43 pm »
User67, в задании написано что нужно контролировать остатки по торговой точке и если их не хватает, то делать перемещение. При проведении в случае продажи я проверяю хватает ли товара в точке, если нет, то я добавляю строку в ТЗ_Перемещение в которой указываю сколько и чего нужно переместить из отдела закупок для проведения. Далее я пытаюсь сделать перемещение, если это не удается (в отделе закупок тоже нет остатков) тогда я взвожу флаг отказ и документ не проводится, помоему все верно smile
« Последнее редактирование: Сентябрь 13, 2010, 10:03:52 pm от bikbulatov artur »

marku

  • Новичок
  • *
  • Сообщений: 0
  • ФИО: Марк Козлов
Задача 1.08
« Ответ #6 : Сентябрь 25, 2010, 06:53:59 pm »
Вот как я решил
Вложения:
1.08_marku.dt
« Последнее редактирование: Сентябрь 25, 2010, 06:56:39 pm от Марк Козлов »

AS

  • Новичок
  • *
  • Сообщений: 0
  • ФИО: Alexander
Задача 1.08
« Ответ #7 : Октябрь 18, 2010, 08:06:30 pm »
marku,
 1) Совсем не используются блокировки
 2) Перемещение должно проводиться документом "Расходная накладная" - по условию задачи.

marku

  • Новичок
  • *
  • Сообщений: 0
  • ФИО: Марк Козлов
Задача 1.08
« Ответ #8 : Октябрь 18, 2010, 09:17:04 pm »
Quote (AS)
Спасибо что посмотрел
 
 1) Совсем не используются блокировки
 Да нужно, но алгоритм один и тот же как во всех задачах.

2) Перемещение должно проводиться документом "Расходная накладная" - по условию задачи.


 Перемещение делаю. а как же без него и провожу
 
Code

 //..............
    ДокПеремещение = Документы.Перемещение.СоздатьДокумент();
      ДокПеремещение.Дата = Дата-1;
      ДокПеремещение.ПодразделенияОтправитель = ПодразделениеОтделПоставки;
      ДокПеремещение.ПодразделенияПолучатель  = Подразделения;
      СтрокаДокПеремещения = ДокПеремещение.СписокНоменклатуры.Добавить();
      СтрокаДокПеремещения.Номенклатура = Выборка.Номенклатура;
      СтрокаДокПеремещения.Количество =НадоСписать;
      ДокПеремещение.Записать(РежимЗаписиДокумента.Проведение);
 //.................
 
« Последнее редактирование: Октябрь 18, 2010, 09:18:58 pm от Марк Козлов »

Владик

  • Новичок
  • *
  • Сообщений: 0
  • ФИО: Владислав
Задача 1.08
« Ответ #9 : Октябрь 25, 2010, 11:25:38 pm »
Решал билет на работе сегодня, посмотрел как сделал Bk,
 считаю у него оптимальное решение.
 Сам пытался уложиться в час с копейками, чтобы на экзамене успеть.
Вложения:
1.8..dt

trantor

  • Новичок
  • *
  • Сообщений: 0
  • ФИО: Trantor
Задача 1.08
« Ответ #10 : Ноябрь 22, 2010, 01:03:07 pm »
А не кажется ли вам что в задании есть потенциальная мина связанная с блокировками и программым созданием и проведением другого документа?
 При начале проведения документа продажи мы должны наложить блокировку на номенклатуру документа и два отдела закупки и тек. точки. Теперь после чтения остатков мы определяем, что нам нужно переместить часть товара с отдела закупок и в модуле проведения создаем новый документ и пытаемся его провести. Но у нас текущая транзакция не закончилась и действует блокировка - результат взаимные блокировки, новый ждет окончание текущего, текущий нового.
 Теоритически можно не накладывать блокировку на отдел закупок при продаже и взаимных блокировок можно избежать в данном случае, но тогда есть вероятность что другой пользователь может провести списание с отдела закупок на другую точку и потенциально появятся минуса.
 Кто что думает?

Добавлено (22.11.2010, 13:03)
---------------------------------------------
Вопрос снимается, т.к. в описании к объекту БлокировкаДанных, написано "Предназначен для явной блокировки данных от чтения или изменения другими сессиями.". Т.е. взаимной блокировки в рамках одной сессии не будет...


AndreiPiter

  • Новичок
  • *
  • Сообщений: 0
  • ФИО: Андрей
Задача 1.08
« Ответ #11 : Декабрь 20, 2010, 08:24:32 pm »
моё решение

marku, вопрос: может так делать не очень правильно
 ДокПеремещение.Дата = Дата-1;
 это так мысли вслух, хотя мне тоже другие варианты в голову не приходят.


Вложения:
0025613.dt
« Последнее редактирование: Декабрь 20, 2010, 08:29:36 pm от Андрей »

Nitro

  • Новичок
  • *
  • Сообщений: 0
  • ФИО: Владимир
Задача 1.08
« Ответ #12 : Декабрь 22, 2010, 12:58:15 pm »
Здесь вообще не нужен документ перемещение, по условию все делает расходная накладная, тогда и проблем с блокировками не будет.

maniacminer

  • Новичок
  • *
  • Сообщений: 0
  • ФИО: ilya panin
Задача 1.08
« Ответ #13 : Февраль 03, 2011, 03:46:55 pm »
Мое решение без отчета, вроде неплохо получилось.
Вложения:
1_08_mm.dt

Gulf_Stream

  • Новичок
  • *
  • Сообщений: 0
  • ФИО: Радомский Виктор Сергеевич
Задача 1.08
« Ответ #14 : Февраль 11, 2011, 01:07:17 pm »
Мой вариант
Вложения:
3732183.dt