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

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

ut2k5

  • Новичок
  • *
  • Сообщений: 0
  • ФИО: Максим
1.13
« Ответ #30 : Октябрь 26, 2010, 11:52:51 am »
SergTH000, а я и не говорю что зря, можно было сделать тем же самым методом, только с указанием не "Да" или "нет" а предопределенного значения перечисления, что сути не меняет..., но я ее победил, если не лень посмотри
 там пару бантиков, ну типа при нехватки деталей указывает номер строки в котором ее не хватает, ну и ест-но по твоей подсказке с МенеджеромВТ, за что тебе спасибо...
Вложения:
Quest_1_13.dt

SergTH000

  • Новичок
  • *
  • Сообщений: 0
  • ФИО: Сергей
1.13
« Ответ #31 : Октябрь 26, 2010, 11:43:53 pm »
ut2k5,
 1.Блокировать для изменения нужно не только при оперативном режиме. Вообще на экзамене не проверяется режим проведения его можно вообще отключить у всех документов.
 2. Мне не нравится запрос через объединение, оно лишнее.Используй ВЫБОР и соединение с РС. Т.е. ты выбираешь номенклатуру из документа если НЕ Номенклатура.Стелаж и номенклатуру из РС, если Номеклатура.Стелаж. Это я так решал=) У sada тоже хороший вариант запроса, посмотри его, он даже лучше наверное=). Тоже самое с количчеством. Кстати если количество NULL лучше 1 выбирать по-моему а не 0.
 3. По поводу контроля остатков и новой методике. Я разобрался с этим благодаря Dhm, а ему сам Белоусов объяснял=)
 Еще раз режим проведения не проверятся, забейте на это. Когда при новой методике получаем остатки параметр момент времени = НовыйГраница(МоментВремени(), ВидГраницы.Включая). Все, только что записанные движения увидим. Конечно, ты можешь объяснять экзаменатору, что при неоперативном проведении нет смысла проверять остатки, у тебя моментвремени вообще неопределено и так быстрее работать будет и т.д. Попробуй, может и прокатит. Но еще раз говорю на курсах в 1с показывают именно такую новую методику. Да кстати у sada тоже остатки на моментвремени неопределено...это прокатит только при оперативном проведении.

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

« Последнее редактирование: Октябрь 27, 2010, 11:00:36 am от Сергей »


Andreich

  • Новичок
  • *
  • Сообщений: 0
  • ФИО: Андрей
1.13
« Ответ #32 : Октябрь 27, 2010, 12:06:11 pm »
Посмотрел все решения. Есть одно но. Напрмер есть 2 склада. На одном есть все комплектующие для какого - либо стеллажа. На втором есть только часть номенклатурных позиций для этого стеллажа (остальных, например болтов, совсем нет на этом складе). Итог? Наличие болтов совсем не будет учитываться. То есть стеллажи будут собираться без болтов. Это хорошо, когда хотя бы по одному комплектующему из состава стеллажа есть на складе. Тогда всё в порядке.

Добавлено (27.10.2010, 12:06)
---------------------------------------------
Это применительно к отчету! То есть он будет выводить недостоверную информацию.


SergTH000

  • Новичок
  • *
  • Сообщений: 0
  • ФИО: Сергей
1.13
« Ответ #33 : Октябрь 27, 2010, 12:21:31 pm »
Andreich, А в чем проблема? Отчет должен показывать наличие целых стелажей на складе, в твоем варианте целого стелажа нет ни на одном складе.

Добавлено (27.10.2010, 12:21)
---------------------------------------------

Quote
ВЫБРАТЬ
    ОстаткиНоменклатурыОстатки.Склад,
    КомплектующиеСтелажей.Стелаж,
    МИНИМУМ(ВЫРАЗИТЬ(ЕСТЬNULL(ОстаткиНоменклатурыОстатки.Количеств оОстаток, 0) / КомплектующиеСтелажей.Количество - 0.5 КАК ЧИСЛО(15, 0))) КАК Поле1
 ИЗ
    РегистрСведений.КомплектующиеСтелажей КАК КомплектующиеСтелажей
       ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ОстаткиНоменклатуры.Остатки КАК ОстаткиНоменклатурыОстатки
       ПО КомплектующиеСтелажей.Комплектующее = ОстаткиНоменклатурыОстатки.Номенклатура

СГРУППИРОВАТЬ ПО
    ОстаткиНоменклатурыОстатки.Склад,
    КомплектующиеСтелажей.Стелаж

У меня такой запрос. Соединяем все поля из РС Комплектующие с Остатками комплектующих, КоличествоОстаток делим на количество в стелаже получаем сколько целых стелажей образовали бы детали на складе. Далее группируем по стелажу и берем минимальное количество.


sada

  • Новичок
  • *
  • Сообщений: 0
  • ФИО: Андрей
1.13
« Ответ #34 : Октябрь 27, 2010, 01:49:19 pm »
Andreich, ты прав.
 SergTH000, в таком варианте тоже не будет работать, т.к. если деталь отсутствут на складе, она не будет учавствовать в соединении по этому складу, соответсвенно и в группировке МИНИМУМ ее значения тоже не будет.

Исправленый отчет прилагаю


Вложения:
113_.erf

SergTH000

  • Новичок
  • *
  • Сообщений: 0
  • ФИО: Сергей
1.13
« Ответ #35 : Октябрь 27, 2010, 03:18:04 pm »
Quote
SergTH000, в таком варианте тоже не будет работать, т.к. если деталь отсутствут на складе, она не будет учавствовать в соединении по этому складу, соответсвенно и в группировке МИНИМУМ ее значения тоже не будет.

ИЗ
 РегистрСведений.КомплектующиеСтелажей КАК КомплектующиеСтелажей
 ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ОстаткиНоменклатуры.Остатки КАК ОстаткиНоменклатурыОстатки
 ПО КомплектующиеСтелажей.Комплектующее = ОстаткиНоменклатурыОстатки.Номенклатура

Все поля из РС, если детали нет на складе, присоединится NULL, в формуле NULL приводим к 0, минимальное значение 0


sada

  • Новичок
  • *
  • Сообщений: 0
  • ФИО: Андрей
1.13
« Ответ #36 : Октябрь 27, 2010, 03:54:11 pm »
SergTH000,

Хорошо, заведи новый склад, оприходуй на него одну любую деталь из любого комплекта и сформируй отчет. Если нормально отработает, выложи базу посмотреть если не сложно.

Я просто не могу понять как левое соединение может добавить строки по отсутствующим складам.


Andreich

  • Новичок
  • *
  • Сообщений: 0
  • ФИО: Андрей
1.13
« Ответ #37 : Октябрь 27, 2010, 04:28:04 pm »
Сейчас закину отчет. Сегодня на работе делал. Вроде раз 5 задачу прорешал, особо не вдумывался. А тут вдруг попробовал придумать исключительную ситуацию и она, надо сказать, очень быстро придумалась.

Quote (SergTH000)
Все поля из РС, если детали нет на складе, присоединится NULL, в формуле NULL приводим к 0, минимальное значение 0

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

Code
ВЫБРАТЬ
  СоставИзделий.Изделие КАК Изделие,
  СоставИзделий.Комплектующее,
  СоставИзделий.Количество
 ПОМЕСТИТЬ ВТДанныеОбИзделиях
 ИЗ
  РегистрСведений.СоставИзделий КАК СоставИзделий
 ;

 ////////////////////////////////////////////////////////////////////////////////
 ВЫБРАТЬ
  ОстаткиНоменклатурыОстатки.Номенклатура,
  ОстаткиНоменклатурыОстатки.Склад,
  ОстаткиНоменклатурыОстатки.КоличествоОстаток КАК КоличествоОстаток
 ПОМЕСТИТЬ ВТОстатки
 ИЗ
  РегистрНакопления.ОстаткиНоменклатуры.Остатки(
    ,
    Номенклатура В
     (ВЫБРАТЬ
      ВТДанныеОбИзделиях.Комплектующее
     ИЗ
      ВТДанныеОбИзделиях)) КАК ОстаткиНоменклатурыОстатки
 ;

 ////////////////////////////////////////////////////////////////////////////////
 ВЫБРАТЬ
  ВТОстатки.Склад,
  ВТДанныеОбИзделиях.Изделие,
  ВТДанныеОбИзделиях.Комплектующее,
  МАКСИМУМ(ВТДанныеОбИзделиях.Количество) КАК Количество
 ПОМЕСТИТЬ ВТИзделияНаСкладах
 ИЗ
  ВТДанныеОбИзделиях КАК ВТДанныеОбИзделиях
   ЛЕВОЕ СОЕДИНЕНИЕ ВТОстатки КАК ВТОстатки
   ПО (ИСТИНА)

 СГРУППИРОВАТЬ ПО
  ВТОстатки.Склад,
  ВТДанныеОбИзделиях.Изделие,
  ВТДанныеОбИзделиях.Комплектующее
 ;

 ////////////////////////////////////////////////////////////////////////////////
 ВЫБРАТЬ
  ВТИзделияНаСкладах.Склад КАК Склад,
  ВТИзделияНаСкладах.Изделие,
  МИНИМУМ(ВЫРАЗИТЬ(ЕСТЬNULL(ВТОстатки.КоличествоОстаток, 0) / ВТИзделияНаСкладах.Количество - 0.5 КАК ЧИСЛО(15, 0))) КАК КоличествоСтеллажей
 ПОМЕСТИТЬ ВТИтоговыеДанные
 ИЗ
  ВТИзделияНаСкладах КАК ВТИзделияНаСкладах
   ЛЕВОЕ СОЕДИНЕНИЕ ВТОстатки КАК ВТОстатки
   ПО ВТИзделияНаСкладах.Склад = ВТОстатки.Склад
    И ВТИзделияНаСкладах.Комплектующее = ВТОстатки.Номенклатура

 СГРУППИРОВАТЬ ПО
  ВТИзделияНаСкладах.Склад,
  ВТИзделияНаСкладах.Изделие
 ;

 ////////////////////////////////////////////////////////////////////////////////
 ВЫБРАТЬ
  ВТИтоговыеДанные.Склад,
  ВТИтоговыеДанные.Изделие,
  ВТИтоговыеДанные.КоличествоСтеллажей
 ИЗ
  ВТИтоговыеДанные КАК ВТИтоговыеДанные
 ГДЕ
  ВТИтоговыеДанные.КоличествоСтеллажей > 0

Добавлено (27.10.2010, 16:28)
---------------------------------------------
sada, Короче нужно сначала соединить Спецификации изделий со складами. Ну а потом привязать к таблице остатков как раньше.


sada

  • Новичок
  • *
  • Сообщений: 0
  • ФИО: Андрей
1.13
« Ответ #38 : Октябрь 27, 2010, 04:36:20 pm »
Andreich, Посмотри мой отчет , он чуть выше в 35-ом сообщении :)
 я просто сосчитал количество уникальных деталей для стелажа, и тоже количество мотрю в группировке по остаткам, если не соходся то откидываю эти строки :)

Andreich

  • Новичок
  • *
  • Сообщений: 0
  • ФИО: Андрей
1.13
« Ответ #39 : Октябрь 27, 2010, 04:48:34 pm »
Quote (sada)
Посмотри мой отчет , он чуть выше в 35-ом сообщении smile

 Глянул, работает. cool

Ezhilo

  • Новичок
  • *
  • Сообщений: 0
  • ФИО: Ежов Сергей
1.13
« Ответ #40 : Октябрь 30, 2010, 12:55:30 am »
Не могу не поделиться своим вариантом.
 Для тех кто еще не делал перечислю основные пункты для решения данной задачи
 1. Деталь - Измерение. Стеллаж - ресурс.
 2. Т.к себестоимость вести не требуется можно в които веки воспользоваться "новым методом" проведения( списываем - затем проверяем)
 3. Отчет по стеллажам - ппц. Нужно учитывать что некоторые детали никогда не приходовались на склад и левым соединением с регистром остатков не отделаться. Я так же как и sada, сначала считал количество различных деталей в стеллаже и если не сходились со сгруппированными по регистру - удалял.
Вложения:
1.13Ezhilo.dt

Andreich

  • Новичок
  • *
  • Сообщений: 0
  • ФИО: Андрей
1.13
« Ответ #41 : Октябрь 30, 2010, 12:29:26 pm »
Quote (Ezhilo)
Я так же как и sada, сначала считал количество различных деталей в стеллаже и если не сходились со сгруппированными по регистру - удалял.

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

YAGolova

  • Новичок
  • *
  • Сообщений: 0
  • ФИО: Илья
1.13
« Ответ #42 : Октябрь 31, 2010, 11:42:07 am »
Всем привет! Посмотрел тут как решают эту задачу и решил выложить свой вариант. очень бы хотелось, чтобы посмотрели, покритиковали! особенно интересуют 2 вопроса:
 1. Почему никто не использовал подчиненный справочник для деталей (чем это плохо)
 2. И насколько ужасно то, что я указываю состав стеллажа в его (стеллажа) табличной части....
Вложения:
8509340.dt

sada

  • Новичок
  • *
  • Сообщений: 0
  • ФИО: Андрей
1.13
« Ответ #43 : Октябрь 31, 2010, 12:13:21 pm »
YAGolova, мое мнение чем лучше РС:

- нет составных типов;
 - назначение справочников не меняется (номенклатура для учета товара), захотим торговать бутербродами сможем сразу торговать.
 - в случае если оператор ввел случайно гайки от одного стеллажа в состав другого (ошибся) и оприходвал их то, это можно исправить одним движением.
 - может мы захотим для общего списка деталей использовать иерархию по производителю, такой фокус с подчиненными не пройдет :).

« Последнее редактирование: Октябрь 31, 2010, 12:28:28 pm от Андрей »

YAGolova

  • Новичок
  • *
  • Сообщений: 0
  • ФИО: Илья
1.13
« Ответ #44 : Октябрь 31, 2010, 12:44:55 pm »
sada, а такие (больше пользовательские) прелести на экзамене играют роль???