Форум Чистова. Подготовка к экзаменам 1С

Аттестация "1С:Специалист" => Аттестация "1С:Специалист по платформе 1С:Предприятие 8.3 и 8.2" => Тема начата: provincial_1с от Октябрь 10, 2010, 10:29:39 pm

Название: Задача 1.22
Отправлено: provincial_1с от Октябрь 10, 2010, 10:29:39 pm
Кто решил?
Название: Задача 1.22
Отправлено: SergTH000 от Октябрь 10, 2010, 11:01:11 pm
1. В РС ПриоритетыСкладов про периодичность ничего не сказано, скорее ее нет, чем как у тебя месяц.
 2. В том же РС тип поля Приоритет - число, а не строка
 3. Просто совет в обработке ПередЗаписью Приходной, проверяй указан ли приоритет для склада, куда приходуется товар и если не указан то ошибка. Просто так можно избежать ненужных ситуаций если для складов не заданы приоритеты как будет списываться товар, да функцию естьНул не надо использовать будет в запросе Расходной. Ну это кому как..
 4. Сумму из расходной выбирать не нужно, она не используется.
 5. докТч не соединяешь с регистром ОстаткиНоменклатуры.
 6. Если НЕ ЭтоНовый() Тогда
 Движения.ОстаткиНоменклатуры.Записать();
 КонецЕсли;
 Зачем это? =)
 7. В 8.2 использовать нужно вместо Сообщить() - СообщениеПользователю
 8. После того как ты убедился что ВыборкаИтоги.Количество > Выборка.КоличествоОстаток и установил Отказ истина
 -нужно написать Если Отказ Тогда продолжить КонецЕсли
 -Вот это уже не нужно будет
 Если ВыборкаДетальныеЗаписи.КоличествоОстаток=0 Тогда
 СуммаДвижения=0;
 Иначе
 СуммаДвижения=КоличествоДвижения*ВыборкаДетальныеЗаписи.СебестоимостьОстаток/
 ВыборкаДетальныеЗаписиКоличествоОстаток
 КонецЕсли;

Ты же уже убедился что ВыборкаДетальныеЗаписи.КоличествоОстаток <> 0
 9.

Добавлено (10.10.2010, 23:01)
 ---------------------------------------------
 Про периодичность не увидел, да все верно месяц

Название: Задача 1.22
Отправлено: SergTH000 от Октябрь 12, 2010, 01:22:40 pm
7. А почему так?

Честно не разбирался в тонкостях почему (метод Сообщить() вообще вроде как оставили для совместимости с 8.1), но то, что точно так надо 100% =)

Добавлено (12.10.2010, 13:22)
---------------------------------------------

Quote
вообще чет я не догоняю как старые движения очищать , методом .очистить() или .записать() или сразу двумя???????????

Мне больше нравится просто Записать(), записывая пустой набор, но не вижу ничего плохого и в Очистить(). Применяй что-то одно, вместе просто смысла нет.

Название: Задача 1.22
Отправлено: sada от Октябрь 19, 2010, 12:42:12 pm
Мой вариант 1.22

Добавлено (19.10.2010, 12:42)
---------------------------------------------
pershinsergei, у тебя решение 1.28 задачи а не 1.22 как в названии темы.


Вложения:
1Cv8_sada_1_22.dt
Название: Задача 1.22
Отправлено: svbel85 от Ноябрь 22, 2010, 03:50:45 pm
to Sada
 а как в СКД выключить заголовки ресурсов КоличествоНачальныйОстаток, СуммаНачальныйОстаток и т.д. что-б были только заголовки групп ??
Название: Задача 1.22
Отправлено: sada от Ноябрь 23, 2010, 06:31:37 am
svbel85,
 Нажми правой кнопкой на поле и выбери "установить заголовок" поставь там пробел.
Вложения:
s2571990.jpg
Название: Задача 1.22
Отправлено: sada от Ноябрь 23, 2010, 07:42:35 am
Посмотрел свой запрос, нашел 2 недостатка (забыл отбор по номенклатуре в вирт таблицах, приоритет надо на 2 увеличивать)
 исправил.
Название: Задача 1.22
Отправлено: Dima1C от Ноябрь 23, 2010, 11:27:47 am
Quote (sada)
Посмотрел свой запрос, нашел 2 недостатка (забыл отбор по номенклатуре в вирт таблицах, приоритет надо на 2 увеличивать)
 исправил.
 Прикрепления: 1Cv8_sada_1_22_.dt(150Kb)

Нужно подвести Итоги в запросе, иначе списание идет некорректно.

Название: Задача 1.22
Отправлено: sada от Ноябрь 23, 2010, 02:35:15 pm
Dima1C, да, действительно там ошибка не детская :) пасиб.

Исправил, но итоги не стал добавлять, потому что изначально хотел без них.


Вложения:
1Cv8_sada_1_22-.dt
Название: Задача 1.22
Отправлено: ut2k5 от Ноябрь 24, 2010, 11:38:26 am
sada, вот это:
 
Code
// УДАЛЕНИЕ СОБСТВЕННЫХ ДВИЖЕНИЙ
  Движения.ОстаткиНоменклатуры.Очистить();
  Движения.ОстаткиНоменклатуры.Записывать = Истина;
  Движения.ОстаткиНоменклатуры.Записать();

 ни к чему, пиши без "Очистить()"...

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

Code
Если ВыборкаДетальныеЗаписи.НехваткаКол <> Null Тогда

 думаю по головке за это не погладят smile

и кстати у тебя управляемые блокировки не работают, подумай сам, почему smile

но в целом все ОК...

Добавлено (24.11.2010, 11:38)
---------------------------------------------
еще у тебя в приходной не отрабатывается требование

Quote
Конфигурация должна устойчиво работать при наличии дублей строк (номенклатуры или сотрудников или т.п.) в документах.
 Необходимо обеспечить корректное проведение документов при этом.
 
, в запросе попадаются:
Quote
Отсутствие проверки на NULL

Вложения:
Quest_1_22.dt
Название: Задача 1.22
Отправлено: Lukashov_as от Июнь 20, 2011, 07:55:33 pm
готово
Вложения:
1_22_lukashov.dt
Название: Задача 1.22
Отправлено: kitaets от Июль 03, 2011, 10:47:46 am
Честно говоря, был удивлен решением Sada?! Обычно очень толково и компактно, а здесь... Торопился наверное.
Вложения:
1_22_1Cv8.dt
Название: Задача 1.22
Отправлено: sada от Июль 03, 2011, 06:12:12 pm
kitaets, ну критика тоже полезна иногда :)
Название: Задача 1.22
Отправлено: Gyd от Июль 06, 2011, 01:49:55 pm
Quote (kitaets)
Честно говоря, был удивлен решением Sada?!

 А вы всегда всё делаете на "5" с первого раза? smile
Название: Задача 1.22
Отправлено: Urfin от Июль 11, 2011, 07:05:50 am
Мое решение, вопрос такой: во временных таблицах по каким полям индексировать? индексировал по номенклатуре. По складу нужно?
Вложения:
Urfin_1.22.dt
Название: Задача 1.22
Отправлено: DoctorRoza от Июль 26, 2011, 09:29:17 pm
Выложу свое решение .. оно отличается от предложенного тут товарищами, минимальным запросом!
Вложения:
DoctorRoza_1_22.dt
Название: Задача 1.22
Отправлено: kow1976 от Сентябрь 14, 2011, 08:40:45 am
DoctorRoza,
 Согласен, с вами левое соединение к таблице приоритетов использовать здесь нельзя.

 Такой вариант решения. Спасибо за комментарии и замечания.
Вложения:
kow19761.22.dt
Название: Задача 1.22
Отправлено: DoctorRoza от Сентябрь 14, 2011, 10:04:08 pm
kow1976, нормально .. ошибок не обнаружил!
Название: Задача 1.22
Отправлено: kow1976 от Сентябрь 15, 2011, 04:36:12 am
DoctorRoza,

 Спасибо за проверку. Жаль, что мы в разных разделах. И я толком не могу комментировать ваши текущие решения. Хотел вас догнать, но понял, что это не реально.
Название: Задача 1.22
Отправлено: DoctorRoza от Сентябрь 15, 2011, 06:54:47 pm
kow1976, Приношу свои извинения, но вот мне удобно, когда есть человек, который решает задачи, которые я уже прошел. Ведь это лишний повод вернуться назад да вспомнить решения. До кучи еще и свои каракули проверить! smile Ошибок уже тьма обнаружил, но ведь как без них!? Тут многие товарищи готовятся к экзамену, решая задачи исключительно по билетам. Мне это не приемлемо. Вы выкладывайте свои решения, по возможности буду смотреть, хотя трудновато бывает переключится с бухучета на оперативный. Раздел 2 без подготовки, наскоком с трудом берется! smile
Название: Задача 1.22
Отправлено: kow1976 от Сентябрь 16, 2011, 01:05:52 pm
DoctorRoza,

 Я думаю вы правы решения данных задач нужно не 1С, а тому кто хочет работать с данной системой. А к экзамену натаскаться можно будет быстро.
Название: Задача 1.22
Отправлено: shv от Сентябрь 27, 2011, 10:23:46 am
kow1976,
Quote
левое соединение к таблице приоритетов использовать здесь нельзя.

 Не согласен: если товар есть на складе, для которого кто-то забыл поставить приоритет, то не надо запрещать списывать товар с этого склада. Лучше сделать так, чтобы товар с такого склада списывался в последнюю очередь. Хотя, вопрос философский.

 Блокировки Белоусов рекомендовал всегда ставить исключительные. Иначе высока вероятность deadlock'ов.

 мой вариант:
Вложения:
shv-1.22.dt
Название: Задача 1.22
Отправлено: kow1976 от Сентябрь 28, 2011, 02:16:25 am
shv,
 Есть сомнения по поводу предложенного вами решения
 1. Можно оприходовать услуги в РН остатки. РН в этом случае в ноль не выйдет никогда
 2. При оперативном проведении берете остатки на момент времени а надо из текущих итогов
 3. При отказе проведения свойство записывать нужно, ставить ложь. Иначе пишете два раза пустые наборы, а не одной строчки в базу не записываете.
 4. Не решаете проблему копеек. Операция деления не восстановима. Регистр в ноль не выйдет.

 С левым соединением, вы правы.
 При создании новой блокировки у нее режим по умолчанию исключительный
 Спасибо за комментарии и замечания
Название: Задача 1.22
Отправлено: shv от Сентябрь 28, 2011, 07:55:23 am
kow1976, спасибо большое за комментарии. Очень полезно, когда кто-то смотрит твой код. Однако, попытаюсь развеять сомнения:

 1. Оприходовать услуги нельзя, так как в Приходной накладной у реквизита Номенклатура определены параметры выбора: Отбор.Услуга(Ложь). Более того, списать услуги тоже нельзя, поскольку в запросе при выборе запросом из табличной часть Расходной накладной стоит условие "РасходнаяНакладнаяСписокНоменклатуры.Номенклатура.Услуга = ЛОЖЬ"

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

 3. При отказе от проведения, если я правильно Вас понял, ничего и не запишется в базу, никаких пустых наборов... Свойство Записывать менять не надо. Достаточно Отказ = Истина. Не очень понял... Поясните, если можно.

 4. Как не решаю проблему копеек? А это:
 
Code
Движение.Количество = Мин(ОсталосьСписать, ВыборкаДетали.КоличествоОстаток);
 Движение.Сумма = ?(Движение.Количество = ВыборкаДетали.КоличествоОстаток,
        ВыборкаДетали.СуммаОстаток,
        Движение.Количество * ВыборкаДетали.СуммаОстаток / ВыборкаДетали.КоличествоОстаток
       );


 
Quote
При создании новой блокировки у нее режим по умолчанию исключительный

 Да, действительно. Не обращал раньше раньше внимания. Всегда писал явно.
Название: Задача 1.22
Отправлено: kow1976 от Сентябрь 28, 2011, 07:20:49 pm
shv,

 Я извиняюсь, смотрел наверно не вашу работу.

 Практически все по теории. Плохого, сказать не могу, а хорошее не кому не нужно.
 1. Наверно нужно добавить пустой набор
 Движения.ОстаткиНоменклатуры.Записать();
 Если перепровести док расх нак будущей датой, то будет выдавать нехватку

 По поводу ложь в свойстве записывать
 Поставьте точку останова в «Модуле набора записей» Регистре накопления «Остатки номенклатуры» в процедуре ПередЗаписью (создайте пустую процедуру и точку на КонецПроцедуры).
 На данной точке (записывать набор записей) Обработка проведения должна останавливаться два раза(после того как добавите Движения.ОстаткиНоменклатуры.Записать()). Первый запись пустых наборов. Второй запись движений.
 При отказе проведения у вас тоже будет два раза, а можно один. Если свойство записывать поставить в ложь.
Название: Задача 1.22
Отправлено: DoctorRoza от Сентябрь 28, 2011, 07:37:09 pm
shv, ИМХО, но вот это
 ВЫБОР
    КОГДА ОстаткиНоменклатурыОстатки.Склад = &СкладШапка
       ТОГДА 0
    ИНАЧЕ ЕСТЬNULL(ПриоритетыСкладовСрезПоследних.Приоритет, 1000)
 КОНЕЦ
 можно и по-критиковать .. А если будет склад с приоритетом больше чем 1000? ))) Мыслю, что даже малейшей притягивание "за уши" есть не айс! Конечно, реально такое маловероятно, но возможно!
Название: Задача 1.22
Отправлено: shv от Сентябрь 29, 2011, 08:03:40 am
DoctorRoza, приоритет ограничен тремя цифрами и запретом на пустое значение, так что пользователь не может задать приоритет ни 0, ни 1000. tongue

 kow1976,
 
Quote
1. Наверно нужно добавить пустой набор
 Движения.ОстаткиНоменклатуры.Записать();
 Если перепровести док расх нак будущей датой, то будет выдавать нехватку

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

 
Quote
При отказе проведения у вас тоже будет два раза, а можно один. Если свойство записывать поставить в ложь.

 Попробовал. Нет такого, если полагаться на платформу и не ставить "Движения.ОстаткиНоменклатуры.Записать()". При отказе от проведения вообще не вызывается ПередЗаписью и ПриЗаписи...
Название: Задача 1.22
Отправлено: SergTH000 от Сентябрь 30, 2011, 07:43:07 am
shv, Если не писать Движения.ОстаткиНоменклатуры.Записать(); и перепровести документ, то его старые движения останутся в базе на момент выполнения запроса, что может привести к неверному списанию.
 
Quote
Но я, в частности, поэтому и запрещаю оперативное проведение, чтобы на экзамене об этом не думать. Если мне нужно будет провести другой датой, то сначала отменю проведение

 При чем здесь оперативное проведение? Че та я не понял, это при оперативном проведении нельзя провести будущей датой, а если оно запрещено то он проведется буз проблем.
Название: Задача 1.22
Отправлено: vvvlad85 от Сентябрь 30, 2011, 09:57:12 am
Кстати будет ли ошибкой если в свойствах документа указать удалять движения автоматически?
Название: Задача 1.22
Отправлено: shv от Сентябрь 30, 2011, 01:02:27 pm
SergTH000, При оперативном проведении документ каждый раз сдвигает время вперед. В этом случае обязательно надо писать пустой набор, чтобы в базе не осталось старых движений, влияющих на результат запроса.

 Если оперативное проведение запрещено и мы не пытаемся менять дату на будущую (упрощение для экзамена), и запрос у нас берет данные на МоментВремени(), то старые движения в результат запроса не попадают.

 Сейчас подумал, что наверное не надо упрощать. Если проведение "по-старому", то удалять всегда старые движения. Всего-то 2 строчки...

 vvvlad85,
Quote
Кстати будет ли ошибкой если в свойствах документа указать удалять движения автоматически?

 В списке ошибок этого нет. Просто надо понимать для чего это и уметь объяснить, если возникнут вопросы.
Название: Задача 1.22
Отправлено: ErrorPro от Ноябрь 30, 2011, 03:08:21 pm
Всем привет, прокомментируйте мое решение пожалуйста. smile
Вложения:
1Cv8ErrorPro.dt
Название: Задача 1.22
Отправлено: LEOON от Декабрь 16, 2011, 08:26:26 pm
Решал очень быстро так что буду рад если ошибок не найдете cool
Вложения:
LEOON_1.22.dt
Название: Задача 1.22
Отправлено: Альберт от Февраль 07, 2012, 01:26:38 pm
Quote (LEOON)
Решал очень быстро так что буду рад если ошибок не найдете


 LEOON, у конфигурации установлен Режим управления блокировкой данных: Автоматический

 В чем преимущество кода:

 
Code
Если Нехватка > 0 Тогда
  Отказ = Истина;
  Сообщение = Новый СообщениеПользователю;
  Сообщение.Текст = "Не хватает товара """+ВыборкаНоменклатура.Номенклатура+""", нехватка составляет: "+Нехватка+"";
  Сообщение.Поле = "СписокНоменклатуры["+(ВыборкаНоменклатура.НомерСтроки-1)+"].Номенклатура";
  Сообщение.УстановитьДанные(ЭтотОбъект);
  Сообщение.Сообщить();
 КонецЕсли;
 Если Отказ Тогда
  Продолжить;
 КонецЕсли;
   

 перед этим:

 
Code
Если Нехватка > 0 Тогда
  Отказ = Истина;
  Сообщение = Новый СообщениеПользователю;
  Сообщение.Текст = "Не хватает товара """+ВыборкаНоменклатура.Номенклатура+""", нехватка составляет: "+Нехватка+"";
  Сообщение.Поле = "СписокНоменклатуры["+(ВыборкаНоменклатура.НомерСтроки-1)+"].Номенклатура";
  Сообщение.УстановитьДанные(ЭтотОбъект);
  Сообщение.Сообщить();
  Продолжить;
 КонецЕсли;


 в Вашем решении?
Название: Задача 1.22
Отправлено: LEOON от Февраль 07, 2012, 09:41:58 pm
Quote (Альберт)
LEOON, у конфигурации установлен Режим управления блокировкой данных: Автоматический

 Не знал что это ошибка, считал что только если используешь БлокироватьДляИзменения(впрочем список от 1с проглядывал мельком).
 ***
 Для каждой, новой номенклатуры не факт, что будет нехватка. А отказ будет установлен раз и на всю транзакцию.
 Так что мы по каждой номенклатуре, получим сообщения о нехватке, а к формированию движений не перейдем.
Название: Задача 1.22
Отправлено: alexey55 от Февраль 18, 2012, 05:20:09 pm
Мое решение. если у склада не указан приоритет тогда Отказ = Истина, и сообщение об установке приоритета
Вложения:
alexey55-1.22.dt
Название: Задача 1.22
Отправлено: Hawk от Март 04, 2012, 10:04:55 pm
alexey55, в целом хорошо в отчете только дату задать нельзя это плохо
Название: Задача 1.22
Отправлено: Hawk от Март 04, 2012, 10:06:05 pm
мой
Вложения:
11.dt
Название: Задача 1.22
Отправлено: Orkrist от Март 19, 2012, 02:54:22 am
У многих в решении при получении остатков присутствует такая строчка:
 "Запрос.УстановитьПараметр("МоментВремени", ?(Режим = РежимПроведенияДокумента, Неопределено, МоментВремени()));"

 Понимаю, что если использовать такой вариант задания параметра, то ускоряется процесс получения остатков при оперативном проведении. Есть ли еще какие-нибудь преимущества? Обязательно ли на экзамене использовать такой вариант?
Название: Задача 1.22
Отправлено: sv_mikh от Март 19, 2012, 06:14:31 am
Quote (Orkrist)
У многих в решении при получении остатков присутствует такая строчка:
 "Запрос.УстановитьПараметр("МоментВремени", ?(Режим = РежимПроведенияДокумента, Неопределено, МоментВремени()));"

 Понимаю, что если использовать такой вариант задания параметра, то ускоряется процесс получения остатков при оперативном проведении. Есть ли еще какие-нибудь преимущества? Обязательно ли на экзамене использовать такой вариант?


 Других задач, у данного куска кода нет. Обязательно ли использовать? Наверно нет. Наверно можно просто МоментВремени() писать для обоих видов проведения. Но зачем наступать на микрограбли? Если на накажут, то не сильно... Но куча таких замечаний может выйти боком.
Название: Задача 1.22
Отправлено: nodalt от Апрель 06, 2012, 12:09:24 pm
Ещё такое вот решение
Вложения:
nodalt_1_22.dt
Название: Задача 1.22
Отправлено: old_guest от Апрель 06, 2012, 06:11:38 pm
Quote (nodalt)
Ещё такое вот решение
 Прикрепления: nodalt_1_22.dt(153Kb)


 три запроса - не оправдано.

Добавлено (06.04.2012, 18:11)
---------------------------------------------
ещё один момент - если на складе (который в шапке) хватает номенклатуры, тогда остатки по другим складам выбирать не нужно.

Название: Задача 1.22
Отправлено: nodalt от Апрель 06, 2012, 06:58:46 pm
safer,
 по поводу склада согласен, но не стал думать над оптимизацией.
 по поводу трёх запросов тоже многовато ... А альтернативу предложить можешь?

 Кстати, один лишний запрос вынужденный из-за условия задачи ... Можно было бы конечно сначала записать движения, а потом прочитать их, но это тоже не оптимально. На мой взгляд приемлемое решение.
 Буду рад увидеть вариант лучше
Название: Задача 1.22
Отправлено: old_guest от Апрель 06, 2012, 07:03:10 pm
nodalt, второй и третий объедини. Построй один пакетный.
Название: Задача 1.22
Отправлено: nodalt от Апрель 06, 2012, 07:04:28 pm
Да, про пакет как раз подумал ... У кого-то недавно видел в решении (сам ещё не использовал) Попробую как-нибудь smile
Название: Задача 1.22
Отправлено: sv_mikh от Апрель 08, 2012, 06:52:28 pm
Мой вариант.
Вложения:
sv_mikh_01_22.dt
Название: Задача 1.22
Отправлено: alfavsev от Июль 22, 2012, 02:54:29 pm
Кто поможет? Почему списывается в минус а не со следующего склада?
Вложения:
1.22.dt
Название: Задача 1.22
Отправлено: Pavlyk от Июль 22, 2012, 08:28:41 pm
Quote (alfavsev)
Кто поможет? Почему списывается в минус а не со следующего склада?


 Во первых Движение.Склад = ВыборкаДетальныеЗаписи.СкладПриоритет; (Склад берется из выборки , а не из документа)
 Во вторых Движение.Сумма =?(Списать = ВыборкаДетальныеЗаписи.КоличествоОстаток,
 ВыборкаДетальныеЗаписи.СуммаОстаток,Списать/ВыборкаДетальныеЗаписи.КоличествоОстаток *ВыборкаДетальныеЗаписи.СуммаОстаток); ( у тебя не правильно рассчитывалась сумма)

 Вроде бы все заработало
Название: Задача 1.22
Отправлено: RoMeL от Август 15, 2012, 12:54:09 am
Мой вариант
 1. Группировка в ПН
 2. Приоритет сделал так как shv

 
Code
    |    ВЫБОР
   |  КОГДА ОстаткиНоменклатурыОстатки.Склад = &Склад
   |   ТОГДА 0
   |  ИНАЧЕ ЕСТЬNULL(ПриоритетыСкладовСрезПоследних.Приоритет, 100)
   |    КОНЕЦ КАК Приоритет
 


 Ресурс"Приоритет" в РС как Число 2.0 ( т.е. 1-99)
 Красиво... получается один параметр сортировки tongue
Вложения:
RoMeL_1.22.dt
Название: Задача 1.22
Отправлено: Nicola от Август 23, 2012, 05:49:08 pm
Мой вариант решения.

 Жду критики =)
Вложения:
1.22_Nicola.dt
Название: Задача 1.22
Отправлено: Andy63 от Октябрь 03, 2012, 01:53:18 pm
Мой вариант ....жду критики
Вложения:
1.22__Andy.dt
Название: Задача 1.22
Отправлено: Pavlyk от Октябрь 03, 2012, 03:22:48 pm
Quote (Andy63)
Мой вариант ....жду критики


 Расходная запрос.
 Нету индексации,
 Нету isnull в одном из пакетов ,
 Непонятно зачем вобще МВТ нужно ,
 Ни как не отрабатывается услуга в Расходной, а может быть такая ситуация что например в ОстаткиНоменклатура она не пойдет , а в РН Продажи пойдет, просто тут его нету. Я думаю что нужно отработать.
 Не получаете представление у номенклатуры. (советую это делать, для вывода сообщения)
 Себестоимость списывается не совсем верно. Правильно будет так
 СпишемКол = МИН(Выборка.КоличествоОстаток,Списать); (это просто для удобства)
 Движение.Сумма=?(Выборка.КоличествоОстатко = СпишемКол,Выборка.СуммаОстаток,Выборка.СуммаОстаток/Выборка.КоличествоОстаток*СпишемКол); (а это обязательно нужно писать)
Название: Задача 1.22
Отправлено: Andy63 от Октябрь 04, 2012, 11:29:44 am
Quote (Pavlyk)
Расходная запрос. Нету индексации, Нету isnull в одном из пакетов , Непонятно зачем вобще МВТ нужно , Ни как не отрабатывается услуга в Расходной, а может быть такая ситуация что например в ОстаткиНоменклатура она не пойдет , а в РН Продажи пойдет, просто тут его нету. Я думаю что нужно отработать. Не получаете представление у номенклатуры. (советую это делать, для вывода сообщения) Себестоимость списывается не совсем верно. Правильно будет так СпишемКол = МИН(Выборка.КоличествоОстаток,Списать); (это просто для удобства) Движение.Сумма=?(Выборка.КоличествоОстатко = СпишемКол,Выборка.СуммаОстаток,Выборка.СуммаОстаток/Выборка.КоличествоОстаток*СпишемКол); (а это обязательно нужно писать)


 1)Про индексацию я пока особо не парюсь, разберу этот момент позже
 2)Is null испарвил =)
 3)МВТ нужно , смотите внимательней есть временная таблица(ТЧ)
 4)Про услугу согласен
 5)Про представление номенклатуры считаю пустой тратой времени.
 6)
 СпишемКол = МИН(Выборка.КоличествоОстаток,Списать); (это просто для удобства) - У меня так и списываается между прочим.

 А вот это совершенно непонятно :
 Движение.Сумма=?(Выборка.КоличествоОстатко = СпишемКол,Выборка.СуммаОстаток,Выборка.СуммаОстаток/Выборка.КоличествоОстаток*СпишемКол); (а это обязательно нужно писать)

 ЗАЧЕМ? аргументируйте
Название: Задача 1.22
Отправлено: Pavlyk от Октябрь 04, 2012, 02:07:04 pm
3) и причем тут мвт? Вт есть согласен, но мвт ненужен
 5) если не получать представление система сама автоматически будет его получать по средствам не явного запроса, и получается запрос в цикле... Вот такая вот пустая трата времени может протянуть на 2 балла
 6) поищите про проблему копеек в поиске
Название: Задача 1.22
Отправлено: Andy63 от Октябрь 04, 2012, 03:30:05 pm
Quote (Pavlyk)
3) и причем тут мвт? Вт есть согласен, но мвт ненужен 5) если не получать представление система сама автоматически будет его получать по средствам не явного запроса, и получается запрос в цикле... Вот такая вот пустая трата времени может протянуть на 2 балла 6) поищите про проблему копеек в поиске


 Спасибо за подсказки!
Название: Задача 1.22
Отправлено: Pavlyk от Октябрь 04, 2012, 06:40:50 pm
Пожалуйста
Название: Задача 1.22
Отправлено: gr0ck от Октябрь 23, 2012, 08:07:50 pm
Покритикуйте
 В запросе не стал остатки пихать в еще одну вт, чтобы потом по приоритетам соединять, просто левым соединением зафигачил)
 Зачем тысячу временных таблиц плодить, в рс не так много записей со складами будет
Вложения:
gr0ck_1_22.dt
Название: Задача 1.22
Отправлено: Lazy от Ноябрь 07, 2012, 04:39:13 pm
Кому не лень, проверьте, что я упускаю из вида?
Вложения:
Lazy_1_22.dt
Название: Задача 1.22
Отправлено: semtesem от Ноябрь 07, 2012, 04:57:24 pm
Скажите плиз нужно ли в этой задаче Движения.ОстаткиНоменклатуры.БлокироватьДляИзменения = Истина;?

 Движения.ОстаткиНоменклатуры.Записывать = Истина;
    Движения.ОстаткиНоменклатуры.БлокироватьДляИзменения = Истина;
    Движения.ОстаткиНоменклатуры.Записать();
    
    Блокировка = Новый БлокировкаДанных;
    ЭлементБлокировки = Блокировка.Добавить("РегистрНакопления.ОстаткиНоменклатуры");
    ЭлементБлокировки.Режим = РежимБлокировкиДанных.Исключительный;
    ЭлементБлокировки.ИсточникДанных = СписокНоменклатуры;
    ЭлементБлокировки.ИспользоватьИзИсточникаДанных("Номенклатура", "Номенклатура");
    Блокировка.Заблокировать();
Название: Задача 1.22
Отправлено: Lazy от Ноябрь 07, 2012, 05:02:48 pm
Я с блокировками пока не очень дружу, но я так понял, что блокировать для изменения надо для новой методики, когда не надо рассчитывать себестоимость
Название: Задача 1.22
Отправлено: semtesem от Ноябрь 07, 2012, 05:05:00 pm
Я тоже встречаю её обычно там в решениях, но хотелось бы чтобы кто-нибудь прояснил, Пожалуйста.
Название: Задача 1.22
Отправлено: sima от Декабрь 16, 2012, 04:33:37 pm
Эта задача интересна тем, что решается на одном регистре + не учитываем услуги + нас не интересует прибыли!
 Казалось бы просто... как бы не так.
 Хитрость придется применить при списании товара по приоритетам складов и контроле остатков. При должной сноровке это нетрудно.
 Отчетик очень интересный. Получил картинку такую же как в книжке.
Вложения:
sima_1_22.dt
Название: Задача 1.22
Отправлено: Makh от Февраль 10, 2013, 03:56:10 pm
Мой вариант решения
Вложения:
Makh_1_22.dt
Название: Задача 1.22
Отправлено: Otshelnik от Июнь 09, 2013, 08:27:47 pm
Цитата (sima)
Эта задача интересна тем, что решается на одном регистре + не учитываем услуги + нас не интересует прибыли! Казалось бы просто... как бы не так. Хитрость придется применить при списании товара по приоритетам складов и контроле остатков. При должной сноровке это нетрудно. Отчетик очень интересный. Получил картинку такую же как в книжке.
Готовился, изучая ваше решение. Думаю, что в нем есть ошибка - себестоимость рассчитается не по складу, а по всему остатку номенклатуры. И еще мне не понятно, зачем нужен параметр запроса "Дата" - разве недостаточно одного параметра "МоментВремени"?
Название: Задача 1.22
Отправлено: TuMyP1985 от Июнь 20, 2013, 10:40:38 pm
Такая же как 1.21 с незначительным отличием
Вложения:
KTT_1_22.dt
Название: Задача 1.22
Отправлено: _jester_ от Июль 01, 2013, 03:10:53 pm
Всем доброго времени суток!
 Кому не трудно посмотрите решение пожалуйста.
Вложения:
Jester_4_.dt
Название: Задача 1.22
Отправлено: bilateral от Июль 03, 2013, 05:59:45 pm
Задача легкая, думал будет потяжелее - потратил на нее 1 час 10 минут smile на все в общем.
Вложения:
bilateral_upr22.dt
Название: Задача 1.22
Отправлено: artfa от Июль 05, 2013, 12:56:17 pm
bilateral ваше решение ч\з маркер склада мне понравилось. однако я решил по другому - ч\з две таблицы значений, счас решаю задачу 1.24 и там как раз мой вариант нужен
Вложения:
1511154.dt
Название: Задача 1.22
Отправлено: artfa от Июль 05, 2013, 01:42:20 pm
упсс, начал решать задачу 1.24 и нашел ошибку в этой задаче, исправил
Вложения:
1598994.dt
Название: Задача 1.22
Отправлено: fimanich от Июль 05, 2013, 01:55:21 pm
Цитата (_jester_)
Кому не трудно посмотрите решение пожалуйста.
Мне кажется усложняешь. В расходной в качестве источника данных блокировки можно сразу использовать СписокНоменклатуры. Кроме того, 2 раза делаешь запрос к текущей расходной, можно было ВТ передать, причем во второй раз услуги попадают в результат, хотя потом они не нужны.
 Строчка Движения.ОстаткиНоменклатуры.Записать(); должна быть не в конце обработки проведения, а после строки Движения.ОстаткиНоменклатуры.Очистить();, иначе расходная сможет прочитать остатки с учетом собственных движений
 В РН ОстаткиНоменклатуры надо поставить Режим блокировки Управляемый и флажок Разрешить разделение итогов
 Прикрепляю свое решение. Задача показалась не сложной. Критика приветствуется.
Вложения:
fimanich_01_22.dt
Название: Задача 1.22
Отправлено: artfa от Июль 30, 2013, 04:40:19 pm
подправил
Вложения:
0008154.dt
Название: Задача 1.22
Отправлено: mihruk от Октябрь 10, 2013, 08:41:54 am
RoMeL, А запрос в обработке проведения выбирает все табличные части всех расходников? )
Название: Задача 1.22
Отправлено: Voyager от Октябрь 16, 2013, 08:06:00 pm
В задаче использую новую методику проведения.

Добавлено (16.10.2013, 20:06)
---------------------------------------------
Перемудрил, построил решение на двух регистрах. Прочитав ветку, понял, что за исключением этого решение ошибок не содержит. В любом случае буду переделывыть, хотя бы потому, что задача полностью соответствует задаче из актуальных на данный момент билетов (билет №4).


Вложения:
Voyager_1.22.dt
Название: Задача 1.22
Отправлено: giotto от Март 28, 2014, 04:53:24 pm
Просто красота, как сделал! Прям залюбуешься!

Добавлено (28.03.2014, 16:53)
---------------------------------------------
Ну если не считать того, что про блокировки забыл((


Вложения:
Spec_Platforma_.dt
Название: Задача 1.22
Отправлено: giotto от Март 28, 2014, 04:57:36 pm
Ну вот сейчас с блокировками, само совершенство.
Вложения:
Spec_Platforma_.dt
Название: Задача 1.22
Отправлено: evil18 от Июнь 29, 2014, 11:50:29 pm
еще одна) проверьте пожалуйста
Вложения:
1.22_.dt
Название: Задача 1.22
Отправлено: fellow от Июль 16, 2014, 10:10:09 am
На экзамене попалась эта задача, сдавал 27.06.2014, претензий у экзаменатора решение не вызвало.

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

 Методику проведения использовал старую, так как есть себестоимость и неизвестно с какого склада списывать (указал это в комментариях к коду)

 Остальные моменты вполне обычны и, я думаю, не вызовут затруднений.
Название: Re: Задача 1.22
Отправлено: Sanek421 от Декабрь 03, 2014, 04:22:59 pm
Мой вариант решения. Пожалуйста, посмотрите, все ли правильно и корректно сделано? Правильно ли блокирую данные?
Название: Re: Задача 1.22
Отправлено: ksandr от Декабрь 11, 2014, 03:38:21 pm
Мой вариант решения. Пожалуйста, посмотрите, все ли правильно и корректно сделано? Правильно ли блокирую данные?

Не доделано условие по услугам, в приходной можно выбрать доставку в любом количестве и оприходовать на склад.
В проведении расходной тоже не отработано условие по услугам.
Читаемость обработки проведения не супер, вот это Ваше разбитие на кучку маленьких процедур это чтоб врагов запутать?:)
По блокировке все норм.
МоментВремени() в запросе желательно устанавливать в соответствии с режимом проведения "?(РежимПроведения = РежимПроведенияДокумента.Оперативный, Неопределено, МоментВремени())".
А в целом все норм.

Вообще задача простая, хотел сначала пропустить, но потом решил на время сделать, управился за 35 минут, на экзамене бы ее:)
Название: Re: Задача 1.22
Отправлено: Sanek421 от Декабрь 11, 2014, 04:33:24 pm
ksandr, спасибо за ответ.
Да про условие "по Услугам" действительно забыл, да и по МоментВремени() как то запамятовал, хотя блокировку по оперативному проведению поставил=).
Много маленьких процедур - это наследство от курсов, преподаватель так делал.

Да, задача не сложная, но главное про мелочи и нюансы не забывать.
Название: Re: Задача 1.22
Отправлено: Odines от Февраль 03, 2015, 10:25:49 am
Согласен, задача простая, все бы такие ..
Название: Re: Задача 1.22
Отправлено: RSeeK от Февраль 24, 2015, 07:16:45 pm
Мое решение, кому интересно, использовал 2 регистра, в 1-ом контролирую остатки, во 2-ом считаю себестоимость. + использовал новую методику контроля остатков.


Название: Re: Задача 1.22
Отправлено: Шахназар от Март 16, 2015, 03:54:27 pm
Как же новую методику если не известно с какого склада списывать?
Название: Re: Задача 1.22
Отправлено: Шахназар от Март 16, 2015, 04:03:40 pm
Мое решение, кому интересно, использовал 2 регистра, в 1-ом контролирую остатки, во 2-ом считаю себестоимость. + использовал новую методику контроля остатков.
какая разница один или 2 регистра?
при списании по среднему проблема сведения в ноль остается
Название: Re: Задача 1.22
Отправлено: max1m1ch от Март 18, 2015, 05:49:38 am
просьба посмотрите решение кто уже сдал
Название: Re: Задача 1.22
Отправлено: RSeeK от Март 23, 2015, 08:42:16 pm
Мое решение, кому интересно, использовал 2 регистра, в 1-ом контролирую остатки, во 2-ом считаю себестоимость. + использовал новую методику контроля остатков.
какая разница один или 2 регистра?
при списании по среднему проблема сведения в ноль остается

советую почитать про новую методику, вначале записываем движения потом считываем остатки.

какая разница один или 2 регистра?

 - по условию задачи остатки контролируются без учета склада, и регистр не содержит лишних данных

при списании по среднему проблема сведения в ноль остается

 - это условие по твоему не избавляет от копеек??

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



Название: Re: Задача 1.22
Отправлено: Albert от Апрель 21, 2015, 12:32:12 pm
просьба посмотрите решение кто уже сдал
В целом - нормально.

Подсистему надо создать, хотя бы одну, и в ней подчиненную.
Сразу создать предопределенный склад.

Приходная. ОбработкаПроведения :
-Павел Чистов рекомендует начать с Очистить движения(),т.к.  в свойстве документа "Удалять движения" установлено значение
"Удалять автоматически при отмене проведения",а в форме движения отражаются, значит при открытии формы
будут прочитаны, а значит, наборы записей в св-ве док-та Движения будут не пустые.При запуске приложения в режиме
"Обычное приложение" конструктор создания движений эту строчку пишет сам.

-движения.ОстаткиТоваров.БлокироватьДляИзменения=Истина; - Зачем? - кому надо читать записи регистра, тот сам
их блокирует для себя, мы только пишем -блокировка не нужна.

Расходная.ОбработкаПроведения :
-С Очисткой то же самое.
-Посмотрите математику в расчете себестоимости.
Название: Re: Задача 1.22
Отправлено: rusmosav от Май 30, 2015, 09:01:31 am
Прощу оценить.
Название: Re: Задача 1.22
Отправлено: ak8647 от Август 31, 2015, 11:46:32 am
Нужна ли проверка на количество товара, которое находится на складе? Ведь можно списать товар со склада, на котором нет этого количества товара. Как вы это делали?
Название: Re: Задача 1.22
Отправлено: Aluvika от Январь 27, 2016, 05:56:13 pm
Ребят, как все же верно понимать условие "При проведении расходной накладной необходимо в первую очередь контролировать хватает ли товара вообще"?
Я понимаю это как "независимо от склада и каких-либо других аналитик в РН".
Т.е. по сути я могу воспользоваться 2 РН:
1. "ОстаткиНоменклатуры" (с 1 измерением - номенклатура, 1 рес - количество) - для контроля остатков в целом по номенклатуре.
2.  "СтоимостьНоменклатуры" (2 изм - номенклатура, партия, 2 рес - количество, сумма) - для списания по партиям.

Хочу понять могу ли я в этой задаче продемонстрировать новую методику проведения для контроля остатков (в РН "ОстаткиНоменклатуры")?
Не будет ли это ошибкой?
Название: Re: Задача 1.22
Отправлено: GROOVY от Январь 30, 2016, 12:47:56 pm
Ребят, как все же верно понимать условие "При проведении расходной накладной необходимо в первую очередь контролировать хватает ли товара вообще"?
Я понимаю это как "независимо от склада и каких-либо других аналитик в РН".
Т.е. по сути я могу воспользоваться 2 РН:
1. "ОстаткиНоменклатуры" (с 1 измерением - номенклатура, 1 рес - количество) - для контроля остатков в целом по номенклатуре.
2.  "СтоимостьНоменклатуры" (2 изм - номенклатура, партия, 2 рес - количество, сумма) - для списания по партиям.

Хочу понять могу ли я в этой задаче продемонстрировать новую методику проведения для контроля остатков (в РН "ОстаткиНоменклатуры")?
Не будет ли это ошибкой?

Не только "могу", но и должен!
Название: Re: Задача 1.22
Отправлено: Aluvika от Февраль 03, 2016, 06:34:32 pm
Павел, спасибо!
Название: Re: Задача 1.22
Отправлено: filosoff от Июнь 03, 2016, 03:43:53 pm
Кто может проверить, может есть какие-нибудь замечания. И по поводу отчета: если он вышел не совсем как на рисунке в условии, за это баллы снижают?
Название: Re: Задача 1.22
Отправлено: Гакусей от Июнь 03, 2016, 07:15:22 pm
Народ, да забейте вы уже на теоретических розовых слонов в неоновом бреду, решайте уже билеты. А то будете готовиться к экзамену год или два, а потом надоест
Название: Re: Задача 1.22
Отправлено: POW от Январь 20, 2017, 06:37:24 pm
Народ, да забейте вы уже на теоретических розовых слонов в неоновом бреду, решайте уже билеты. А то будете готовиться к экзамену год или два, а потом надоест
Эта задача сейчас находится в списке актуальных билетов! Так что решив её - можно сказать что часть билета ты уже решил!
Название: Re: Задача 1.22
Отправлено: jonik от Июль 18, 2017, 02:54:42 pm
Всем привет. Задача аналогична 1.21, за исключением сортировки по складу РасходнойНакладной.

П.С. Как в отчет убрать имена колонок для ресурсов(чтобы было как в книжке)?
Название: Re: Задача 1.22
Отправлено: Vorobi6ek от Сентябрь 01, 2017, 06:37:45 pm
Всем привет. Задача аналогична 1.21, за исключением сортировки по складу РасходнойНакладной.

П.С. Как в отчет убрать имена колонок для ресурсов(чтобы было как в книжке)?


Мне очень нравятся твои решения, но во всех решениях вижу, что
1) в ПН и РН автоматически не считается сумма при изменении кол-ва и цены
2) автоматически не считается сумма документа
3) в отчете нет параметров ВТ
4) в ПН желательно не использовать конструктор, а группировать номенклатуру, суммировать кол-во и сумму
5) в конфигурации на экзамене используется перечисление с видом номенклатуры (товар-услуга), желательно использовать в справочнике перечисление, а не булево
Но это все мелочи
6) при списании суммы не учитывается проблема копеек
7) Что касается отчета, то ответ на твой вопрос такой -- необходимо использовать макеты полей, как в 8, 6, 10 задачках.

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

еще вспомнила:
8) желательно использовать представление Номенклатуры
9) Запрос.УстановитьПараметр("МоментВремени", ?(РежимПроведения = РежимПроведенияДокумента.Оперативный, Неопределено, МоментВремени()));
Название: Re: Задача 1.22
Отправлено: jonik от Сентябрь 04, 2017, 01:17:26 pm
Всем привет. Задача аналогична 1.21, за исключением сортировки по складу РасходнойНакладной.

П.С. Как в отчет убрать имена колонок для ресурсов(чтобы было как в книжке)?


Мне очень нравятся твои решения, но во всех решениях вижу, что
1) в ПН и РН автоматически не считается сумма при изменении кол-ва и цены
2) автоматически не считается сумма документа
3) в отчете нет параметров ВТ
4) в ПН желательно не использовать конструктор, а группировать номенклатуру, суммировать кол-во и сумму
5) в конфигурации на экзамене используется перечисление с видом номенклатуры (товар-услуга), желательно использовать в справочнике перечисление, а не булево
Но это все мелочи
6) при списании суммы не учитывается проблема копеек
7) Что касается отчета, то ответ на твой вопрос такой -- необходимо использовать макеты полей, как в 8, 6, 10 задачках.

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

еще вспомнила:
8) желательно использовать представление Номенклатуры
9) Запрос.УстановитьПараметр("МоментВремени", ?(РежимПроведения = РежимПроведенияДокумента.Оперативный, Неопределено, МоментВремени()));

1),2) это уже на ваше личное усмотрение: прорешивая задачи я понял что не стоит тратить время на "наведение красоты", а делать все в рамках условия, т.к. времени катастрофически мало и лучше сосредоточиться на решении.
3) зачем? параметры даты начала\конца периода появляются автоматически, а без параметров ВТ мы получаем данные из таблицы итогов, а это наиболее быстрый способ
4) согласен, следующие решения делаю ч\з запрос
5) не обязательно: булевый реквизит проще, а перечисление нужно использовать если номенклатура по условию делится на товар, услугу, набор и т.д.
6) в формуле Количество*СуммаОстаток\КоличествоОстаток данной проблемы нет, это математика(сначала "*", потом "\") :D
7) знаю что ч\з макеты, долго мучился с этим, но так и не победил. Если у вас получилось - можете выложить решение, посмотрю
8) https://its.1c.ru/db/metod8dev/content/2656/hdoc похоже вы правы
9) данная конструкция применяется если по условию документы будут перепроводиться

По поводу подготовки очень советую посмотреть курс Гилева «Профессиональное программирование в 1С:Предприятии 8.х»: Базовый курс\Продвинутый курс: все очень понятно разбирается, материала правда очень много, но зато полезно.

Будут вопросы - пишите :)
Название: Re: Задача 1.22
Отправлено: Vorobi6ek от Сентябрь 06, 2017, 07:31:24 pm

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


Амсори, что я перешла в первом сообщении на ты", мне показалось, что тут так принято.

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

1) Не нужно выбирать ресурсы.

2) а) На закладке "Макеты" нужно добавить макеты полей количество (в данном случае 4 поля — КоличествоНачальныйОстаток, КоличествоПриход, КоличествоРасход, КоличествоКонечныйОстаток).
б) Нужно выбрать для каждого макета область — диапазон, состоящий из двух ячеек, находящихся друг под другом (Например, R2C1:R3C1, R5C1:R6C1, R8C1:R9C1, R11C1:R12C1).
в) Необходимо заполнить выбранные ячейки. Например, для КоличествоНачальныйОстаток мы пишем в верхней ячейке КоличествоНачальныйОстаток, в нижней — СуммаНачальныйОстаток, чтобы отчет вывел нам сверху количество, а снизу сумму. Аналогично заполняем ячейки для остальных трех полей.
г) Щелкаем правой кнопкой мыши по каждой ячейке и выбираем в свойстве "Заполнение" — "Параметр".

3) На закладке "Настройки" выбираем все поля, кроме сумм (СуммаНачальныйОстаток, СуммаПриход, СуммаРасход, СуммаКонечныйОстаток), потому что они будут выводиться в отчет из-за созданных нами в п.2 макетов. Делаем группировку по Складу, ниже — Детальные записи. На вкладке "Другие настройки": расположение полей группировок — отдельно и только в итогах, расположение общих итогов по горизонтали и вертикали — нет.

Может быть, все-таки можно Вас как-то найти в социальных сетях, например? Я хотела бы найти репетитора, но где ж его, хорошего, найти, а Вы как раз решаете те же задачки, что и я и решения мне нравятся.
Название: Re: Задача 1.22
Отправлено: alex1248 от Сентябрь 06, 2017, 09:17:25 pm
Всем привет. Задача аналогична 1.21, за исключением сортировки по складу РасходнойНакладной.

П.С. Как в отчет убрать имена колонок для ресурсов(чтобы было как в книжке)?
4) в ПН желательно не использовать конструктор, а группировать номенклатуру, суммировать кол-во и сумму
4) согласен, следующие решения делаю ч\з запрос
В этом нет никакой необходимости, но драгоценные минуты на экз будут потеряны.
То же самое по поводу макета уже писал, но дело ваше, не настаиваю.  :D
Название: Re: Задача 1.22
Отправлено: jonik от Сентябрь 07, 2017, 01:24:25 pm

Может быть, все-таки можно Вас как-то найти в социальных сетях, например? Я хотела бы найти репетитора, но где ж его, хорошего, найти, а Вы как раз решаете те же задачки, что и я и решения мне нравятся.

Насчет репетиторства вряд ли, спасибо конечно за оценку моих решений, но до Чистова и Гилева мне еще далеко :'( :),  да и времени если честно совсем нет, все на подготовку уходит. По поводу контакта - ответил в письме. 
Название: Re: Задача 1.22
Отправлено: jonik от Сентябрь 11, 2017, 10:47:43 am

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


Амсори, что я перешла в первом сообщении на ты", мне показалось, что тут так принято.

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

1) Не нужно выбирать ресурсы.

2) а) На закладке "Макеты" нужно добавить макеты полей количество (в данном случае 4 поля — КоличествоНачальныйОстаток, КоличествоПриход, КоличествоРасход, КоличествоКонечныйОстаток).
б) Нужно выбрать для каждого макета область — диапазон, состоящий из двух ячеек, находящихся друг под другом (Например, R2C1:R3C1, R5C1:R6C1, R8C1:R9C1, R11C1:R12C1).
в) Необходимо заполнить выбранные ячейки. Например, для КоличествоНачальныйОстаток мы пишем в верхней ячейке КоличествоНачальныйОстаток, в нижней — СуммаНачальныйОстаток, чтобы отчет вывел нам сверху количество, а снизу сумму. Аналогично заполняем ячейки для остальных трех полей.
г) Щелкаем правой кнопкой мыши по каждой ячейке и выбираем в свойстве "Заполнение" — "Параметр".

3) На закладке "Настройки" выбираем все поля, кроме сумм (СуммаНачальныйОстаток, СуммаПриход, СуммаРасход, СуммаКонечныйОстаток), потому что они будут выводиться в отчет из-за созданных нами в п.2 макетов. Делаем группировку по Складу, ниже — Детальные записи. На вкладке "Другие настройки": расположение полей группировок — отдельно и только в итогах, расположение общих итогов по горизонтали и вертикали — нет.

Может быть, все-таки можно Вас как-то найти в социальных сетях, например? Я хотела бы найти репетитора, но где ж его, хорошего, найти, а Вы как раз решаете те же задачки, что и я и решения мне нравятся.

Спасибо, все получилось :)
Название: Re: Задача 1.22
Отправлено: jonik от Январь 22, 2018, 10:57:10 pm

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


Амсори, что я перешла в первом сообщении на ты", мне показалось, что тут так принято.

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

1) Не нужно выбирать ресурсы.

2) а) На закладке "Макеты" нужно добавить макеты полей количество (в данном случае 4 поля — КоличествоНачальныйОстаток, КоличествоПриход, КоличествоРасход, КоличествоКонечныйОстаток).
б) Нужно выбрать для каждого макета область — диапазон, состоящий из двух ячеек, находящихся друг под другом (Например, R2C1:R3C1, R5C1:R6C1, R8C1:R9C1, R11C1:R12C1).
в) Необходимо заполнить выбранные ячейки. Например, для КоличествоНачальныйОстаток мы пишем в верхней ячейке КоличествоНачальныйОстаток, в нижней — СуммаНачальныйОстаток, чтобы отчет вывел нам сверху количество, а снизу сумму. Аналогично заполняем ячейки для остальных трех полей.
г) Щелкаем правой кнопкой мыши по каждой ячейке и выбираем в свойстве "Заполнение" — "Параметр".

3) На закладке "Настройки" выбираем все поля, кроме сумм (СуммаНачальныйОстаток, СуммаПриход, СуммаРасход, СуммаКонечныйОстаток), потому что они будут выводиться в отчет из-за созданных нами в п.2 макетов. Делаем группировку по Складу, ниже — Детальные записи. На вкладке "Другие настройки": расположение полей группировок — отдельно и только в итогах, расположение общих итогов по горизонтали и вертикали — нет.

Может быть, все-таки можно Вас как-то найти в социальных сетях, например? Я хотела бы найти репетитора, но где ж его, хорошего, найти, а Вы как раз решаете те же задачки, что и я и решения мне нравятся.

Спасибо, все получилось :)
Подкорректировал
Название: Re: Задача 1.22
Отправлено: masenshi от Февраль 03, 2018, 10:26:29 am
Подкорректировал
не индексированы поля во вр таблице!
Название: Re: Задача 1.22
Отправлено: jonik от Февраль 05, 2018, 12:20:11 pm
Подкорректировал
не индексированы поля во вр таблице!
Изучаем
https://its.1c.ru/db/metod8dev#content:5842:hdoc
Название: Re: Задача 1.22
Отправлено: masenshi от Февраль 12, 2018, 05:52:21 am
Изучаем
https://its.1c.ru/db/metod8dev#content:5842:hdoc

Да читал уже.
Могу даже процитировать:
"Внимание! Не забудьте проиндексировать созданную временную таблицу. В качестве индексных полей следует указать все поля, которые используются в условии соединения. "
Где там сказано, что здесь индекс не нужен? Прошу показать пальцем.
Практика показывает, что использование индекса существенно увеличивает производительность, когда данные выбираем из ТЧ документа и помещаем их во ВТ. Для этого в принципе и помещают ТЧ во временную таблицу, чтобы проиндексировать поля, участвующие в соединении.

На экзамене будет большой жирный минус!
Название: Re: Задача 1.22
Отправлено: jonik от Февраль 12, 2018, 04:53:09 pm
Изучаем
https://its.1c.ru/db/metod8dev#content:5842:hdoc

Да читал уже.
Могу даже процитировать:
"Внимание! Не забудьте проиндексировать созданную временную таблицу. В качестве индексных полей следует указать все поля, которые используются в условии соединения. "
Где там сказано, что здесь индекс не нужен? Прошу показать пальцем.
Практика показывает, что использование индекса существенно увеличивает производительность, когда данные выбираем из ТЧ документа и помещаем их во ВТ. Для этого в принципе и помещают ТЧ во временную таблицу, чтобы проиндексировать поля, участвующие в соединении.

На экзамене будет большой жирный минус!

"Например никогда не следует дополнительно индексировать первое измерение регистра, поскольку для поиска по значению первого измерения подходит основной индекс таблицы итогов, который автоматически создаст платформа."
Название: Re: Задача 1.22
Отправлено: masenshi от Февраль 14, 2018, 03:55:26 am

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

А причем тут первое измерение регистра?
Я говорю что необходимо проиндексировать поля во временной таблице (ПОМЕСТИТЬ РасходнаяНакладная)!
Там нет регистров. Там данные выбираются из табличной части документа.

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

Далее вы соединяетесь по полю номенклатура со своим регистром. Но поле временной таблицы не индексировано. Запрос будет выполняться долго. Даже если поле второй таблицы (регистра) индексировано.
В вашем конкретном случае будет ошибка!
"Внимание! Не забудьте проиндексировать созданную временную таблицу. В качестве индексных полей следует указать все поля, которые используются в условии соединения. "
Название: Re: Задача 1.22
Отправлено: jonik от Февраль 14, 2018, 11:39:09 am

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

А причем тут первое измерение регистра?
Я говорю что необходимо проиндексировать поля во временной таблице (ПОМЕСТИТЬ РасходнаяНакладная)!
Там нет регистров. Там данные выбираются из табличной части документа.

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

Далее вы соединяетесь по полю номенклатура со своим регистром. Но поле временной таблицы не индексировано. Запрос будет выполняться долго. Даже если поле второй таблицы (регистра) индексировано.
В вашем конкретном случае будет ошибка!
"Внимание! Не забудьте проиндексировать созданную временную таблицу. В качестве индексных полей следует указать все поля, которые используются в условии соединения. "
Да, перепутал, вы правы
Название: Re: Задача 1.22
Отправлено: НатальяЮГ от Июль 06, 2018, 10:11:30 pm
Мой вариант  :)