Имя: Пароль:
1C
1С v8
Достать информацию из регистра накоплений
0 nikolanovichokk
 
05.06.23
22:24
У меня документ сборка совершает движение в регистре накоплений (остатки) и уменьшает количество деталей, также добавляет собранный системный блок. Мне необходимо достать из этого регистра системный блок и поместить в документ расходная накладная, желательно, чтобы пользователь имел возможность выбрать период за который будут выводиться эти системные блоки (просто строчками). P.S новичок и подскажите хотя бы куда копать.
1 nikolanovichokk
 
05.06.23
22:25
Я правильно понимаю, что эта информация должна писаться в табличную часть документа расходная накладная?
2 Волшебник
 
05.06.23
22:26
(1) Вы бредите. Пригласите в ветку постановщика задачи
3 nikolanovichokk
 
05.06.23
22:28
А что именно не так? есть регистр накоплений, почему нельзя информацию из него поместить в табличную часть документа расходная накладная? возможно я действительно бред пишу, но я не понимаю проблемы
4 Волшебник
 
05.06.23
22:32
(3) Это конечно можно. Сделайте кнопку Заполнить, пропишите запрос к регистру накопления, заполните табличную часть.

А вот "системные блоки за период" — это конечно бред.
5 nikolanovichokk
 
05.06.23
22:41
а можно подробнее в плане самой реализации, чисто теоретически я примерно понимаю, как это сделать, но вот с самой реализацией есть проблемы или пример какой нибудь скиньте
6 Волшебник
 
05.06.23
22:44
(5) Давайте лучше Вы нам скиньте, что пытались и что получилось
7 Злопчинский
 
05.06.23
22:45
(5) Опишите ЧТО надо сделать (постановку задачи). не надо описывать КАК вы это делаете или КАК вы это хотите сделать. Также не надо подменять описание "что надо" описанием "как сделать"
8 Волшебник
 
05.06.23
22:45
(7) Начинать надо не с этого. Надо начинать с вопроса ЗАЧЕМ
9 Злопчинский
 
05.06.23
22:47
ну.. я предполагаю что Зачем следует за Что.
Задавать вопрос Зачем не имея Что - это высшее колдунство!
10 nikolanovichokk
 
05.06.23
22:54
У меня сборка документ (собирает пк), которая списывает детали из регистра накоплений и мне необходимо выводить в расходную накладную системные блоки, которые были собраны, в этом состоит задача. Я сделал так, чтобы сборка записывала в регистр накоплений собранные системные блоки (совершала движения), дальше я думаю надо достать оттуда эти самые системные из регистра накоплений и вывести их в табличную часть расходной накладной. Изначально полная задача звучит так.
"Общая постановка задачи.
Компания занимается сборкой и продажей компьютеров и периферийных устройств. Закупка деталей
отражается документом «Приходная накладная», сборка системных блоков документом - «Сборка»,
информация о продажах отражается документом «Расходная накладная».
Из деталей производится сборка системных блоков, причем предполагается невозможность разборки,
т.е. собрав системный блок, невозможно из него извлечь деталь обратно.
Задача No 1
Для каждого системного блока в информационной базе должна храниться информация о его составе
(спецификация): детали, их свойства и количество. Состав деталей может изменяться не чаще чем 1 раз в
неделю.
В информационной базе необходимо хранить информацию о ценах. Используется два вида цен:
закупочная цена и цена продажи. Закупочная цена может быть различна у разных поставщиков.
Задача No 2
Необходимо реализовать учет движения номенклатуры.
В документе сборка используются две табличные части. В первой – указывается перечень собираемых
системных блоков и их количество. Во второй – список деталей, которые потребовались при текущей сборке.
Необходимо проверять наличие требуемых деталей для сборки.
При проведении документа необходимо списывать детали, полученные из актуальной на момент
проведения спецификации вместе с деталями, дополнительно указанными в самом документе.
В табличную часть документа «Расходная накладная» вводится информация о системном блоке или
периферийном устройстве и их количестве. Продавать «в минус» нельзя, необходимо проверять остатки."
Я все сделал кроме работы расходной накладной
11 nikolanovichokk
 
05.06.23
22:57
Код расходной накладной сейчас выглядит так:
"Процедура ОбработкаПроведения(Отказ, Режим)

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

    // регистр ОстаткиНоменклатуры Расход
    Движения.ОстаткиНоменклатуры.Записывать = Истина;
    Для Каждого ТекСтрокаТовары Из Товары Цикл
        Движение = Движения.ОстаткиНоменклатуры.Добавить();
        Движение.ВидДвижения = ВидДвиженияНакопления.Расход;
        Движение.Период = Дата;
        Движение.Деталь = ТекСтрокаТовары.Товар;
        Движение.Количество = ТекСтрокаТовары.Количество;
        Движение.Цена = ТекСтрокаТовары.Цена;
        Движение.Сумма = ТекСтрокаТовары.Сумма;
    КонецЦикла;
    
        Движения.Записать();
    
    Запрос = Новый Запрос;
    Запрос.Текст =
    "ВЫБРАТЬ
    |    ОстаткиНоменклатурыОстатки.Деталь КАК Деталь,
    |    ОстаткиНоменклатурыОстатки.КоличествоОстаток КАК КоличествоОстаток
    |ИЗ
    |    РегистрНакопления.ОстаткиНоменклатуры.Остатки(, Деталь В (&МассивДеталей)) КАК ОстаткиНоменклатурыОстатки
    |ГДЕ
    |    ОстаткиНоменклатурыОстатки.КоличествоОстаток < 0";
    
    Запрос.УстановитьПараметр("МассивДеталей", Товары.ВыгрузитьКолонку("Товар"));
    
    РезультатЗапроса = Запрос.Выполнить();
    Если НЕ РезультатЗапроса.Пустой() Тогда
        Отказ = Истина;
        Выборка = РезультатЗапроса.Выбрать();
        Пока Выборка.Следующий() Цикл
            Сообщить("Не хватает товара " + Выборка.Деталь +", в количестве " + ( - Выборка.КоличествоОстаток));
        КонецЦикла;
    КонецЕсли;

    КонецПроцедуры

"
12 Волшебник
 
05.06.23
23:06
(10) И откуда Вы взяли "системные блоки за период"? В условиях задачи этого нет
13 Волшебник
 
05.06.23
23:06
(11) При проведении остатки надо получать на дату документа
14 nikolanovichokk
 
05.06.23
23:15
Это было сказано мне словами, тем кто давал задачу, допустим это нельзя сделать, но как мне правильно получить системные блоки из регистра накоплений?
15 Волшебник
 
05.06.23
23:16
(14) запросом к виртуальной таблице остатки/обороты с отбором по номенклатуре
16 nikolanovichokk
 
05.06.23
23:17
хорошо попробую
17 Злопчинский
 
05.06.23
23:52
(14) в чем проблема?
1. накладная - в ней указано: к сборке = 2шт блоков, плюс к этому 10 стяжек - ЭТО СИХОДНЫЕ ДАННЫЕ.
2. при проведении - читаешь спецификацию для блока из СОСТАВА БЛОКА (спецификация на блок), приплюсовываешь к перечню комплектующих дополнительно указанные комплектующие в составе накладной.
3. проверяешь остатки КОМПЛЕКТУЮЩИХ - если хватает - списываешь комплектующие из регистра остатков, приходуешь системные блокти.
ВСЁ.
.
я задачу (по диагонали) так понял.
18 Злопчинский
 
05.06.23
23:53
(12) да он в начале вообще какую-то ересь языческую неправославную написал
19 Злопчинский
 
05.06.23
23:59
"не необходимо достать из этого регистра системный блок и поместить в документ расходная накладная,"
- это вообще пздц какой-то.
товарищ вообще не представляет даже ПРЕДМЕТА того, что делает.
.
типовые варианты реальной работы (а задача вкривь-вкось описана вполне реальная)
взяли такого оболтуса как (0) в контору - задача собирать системные блоки, возможные варианты:
1. дали СПЕЦИФИКАЦИЮ на системный блок, задача - собрать 2 системника для покупателя, дополнительно на системники наклеить анимешные эмблемки.
2. собрать два каких-нибудь системника лишь бы работали из тех комплектующих/барахла что есть в подсобке, что подойдет друг к другу из комплектующих - то и собрать.
.
задача описывает вариант-1
.
какие нах "достать из регистра системные блоки.." - они появляются как итог
20 Злопчинский
 
06.06.23
00:03
тут даже ОПИСАНО подробно КАК сделать
.
В документе сборка используются две табличные части. В первой – указывается перечень собираемых
системных блоков и их количество (!!! УКАЗЫВАЕТСЯ !!!). Во второй – список деталей, которые потребовались при текущей сборке.
Необходимо проверять наличие требуемых деталей для сборки.
При проведении документа необходимо списывать детали, полученные из актуальной на момент
проведения спецификации вместе с деталями, дополнительно указанными в самом документе.
В табличную часть документа «Расходная накладная» вводится (!!! ВВОДИТСЯ!!!) информация о системном блоке или
периферийном устройстве и их количестве.
.
как из прозрачного практически исчерпывающего описания можно родить ересь (0) - для меня загадка...
21 kubik_live
 
06.06.23
00:38
(10) Кажется, это тестовая задача из сборника на Спеца.
22 kubik_live
 
06.06.23
00:41
(0) Начни с Радченко...
23 Злопчинский
 
06.06.23
02:03
ндя... воспитаем настоящего погромиста...
24 Волшебник
 
06.06.23
07:54
(20) Сон разума рождает чудовищ
25 Злопчинский
 
06.06.23
10:06
Чудище обло, озорно, огромно, стозевно и лаяй
26 nikolanovichokk
 
06.06.23
14:08
ох, что же вы все меня так пинаете, читаю я радченко, учусь, пробую денюжки за это мне не платят или вы с пеленок в 1с сразу разбирались? работу спецификации я сделал, сборка работает (того кто давал задачи всё устроило), но вот как это всё связать с расходной накладной не понял, так как не понимаю, как это работает в 1с... Сразу камнями кидаться, ужас
27 nikolanovichokk
 
06.06.23
14:09
пробую - денюжки*
28 Волшебник
 
06.06.23
14:27
(26) А Вы сделали (4) ?
29 Злопчинский
 
06.06.23
14:52
(26) если в голове бардак - то и на словах бардак получится, ив коде бардак получится. так что надо начинать не с радченко - это чисто технические вопросы, а с наведения порядка в голове. как-то так...