![]() |
![]() |
|
Алгоритмы в движениях. | ☑ | ||
---|---|---|---|---|
0
banan_CHIK_
10.10.17
✎
19:00
|
Добрый день, ребята! У меня вот такой вопрос:
Нашел в интернете задание для начинающих (1clancer.ru/download/fileId=41594) Ссылка не битая!, Не получается в алгоритмах, подскажите, где найти информацию по этой теме или в чем у меня ошибка ОстаткиТоваров – движение содержит записи (Приход) по каждой строчке табличной части «Товары», все данные для записи берутся из документа. Сумма в записи должна рассчитываться вот по такому алгоритму: Сумма = Количество * СредневзвешеннаяЦена СредневзвешеннаяЦена = ОстатокСумма / ОстатокКоличество; ОстатокСумма = нужно вычислить остаток Суммы в регистре накопления ОстаткиТоваров, на дату документа, с отбором по Номенклатура и Склад: ОстатокКоличество = нужно вычислить остаток Количество в регистре накопления ОстаткиТоваров, на дату документа, с отбором по Номенклатура и Склад: ВзаиморасчетыСКонтрагентами – движение (одно) содержит запись (Приход) на общую сумму реализации. Вот так я код написал: Процедура ОбработкаПроведения(Отказ, Режим) //{{__КОНСТРУКТОР_ДВИЖЕНИЙ_РЕГИСТРОВ // Данный фрагмент построен конструктором. // При повторном использовании конструктора, внесенные вручную изменения будут утеряны!!! // регистр ОстаткиТоваров Расход Движения.ОстаткиТоваров.Записывать = Истина; Движения.ОстаткиТоваров.Очистить(); Для Каждого ТекСтрокаТовары Из Товары Цикл Движение = Движения.ОстаткиТоваров.Добавить(); Движение.ВидДвижения = ВидДвиженияНакопления.Расход; Движение.Период = Дата; Движение.Номенклатура = ТекСтрокаТовары.Товар; Движение.Склад = Склад; Движение.Количество = ТекСтрокаТовары.Количество; Движение.Сумма = ТекСтрокаТовары.Количество * РегистрыНакопления.ОстаткиТоваров.Остатки(Дата, "Номенклатура,Склад", , "Сумма") / РегистрыНакопления.ОстаткиТоваров.Остатки(Дата, "Номенклатура,Склад", , "Количество"); КонецЦикла; // регистр ВзаиморасчетыСКонтрагентами Расход Движения.ВзаиморасчетыСКонтрагентами.Записывать = Истина; Движения.ВзаиморасчетыСКонтрагентами.Очистить(); Для Каждого ТекСтрокаТовары Из Товары Цикл Движение = Движения.ВзаиморасчетыСКонтрагентами.Добавить(); Движение.ВидДвижения = ВидДвиженияНакопления.Расход; Движение.Период = Дата; Движение.Контрагент = Контрагент; Движение.Сумма = ТекСтрокаТовары.Сумма; КонецЦикла; //}}__КОНСТРУКТОР_ДВИЖЕНИЙ_РЕГИСТРОВ КонецПроцедуры Вот база ребят: https://drive.google.com/open?id=0BzEWLPdHqpHGbzBWakpWUnNWVFE Я понимаю тупые вопросы для вас, но я только начал учиться) Если не трудно, помогите) |
|||
1
Джинн
10.10.17
✎
19:05
|
(0) Коллега, за такой код убивать нужно. Найдите в инете книги Радченко и освойте сначала их.
|
|||
2
banan_CHIK_
10.10.17
✎
19:11
|
Скажи, что не так делаю. Я хоть буду знать, многие говорят можно запросами, но с ними я не умею работать.
|
|||
3
Джинн
10.10.17
✎
19:16
|
(2) Все не так. Ищите книгу Радченко и отрабатывайте последовательно с первой главы.
|
|||
4
0xFFFFFF
10.10.17
✎
19:19
|
(0) на тупые вопросы не получишь ответа. Без понимания предмета - код писать не научишься (типа я ему по-русски, а может поймет что я хочу...).
Поэтому твоя помощь в (1) |
|||
6
Mankubus
10.10.17
✎
19:44
|
(2) учись запросам раз не умеешь. без запросов тебе путь заказан
|
|||
7
breezee
10.10.17
✎
21:05
|
Движение.Сумма = ТекСтрокаТовары.Количество * РегистрыНакопления.ОстаткиТоваров.Остатки(Дата, "Номенклатура,Склад", , "Сумма") / РегистрыНакопления.ОстаткиТоваров.Остатки(Дата, "Номенклатура,Склад", , "Количество");
Спасибо! Поднял настроение под вечер. По теме: Учи соединения в запросах, выборку из виртуальных таблиц в запросах. Даю подсказищу, данные в документе есть, надо связать по полям связи(пойми, что за поля их связывают) в запросе с данными по остаткам из регистра "ОстаткиТоваров". Посмотреть, что вернет запрос в случае того, если данных нет в регистре, что вообще возварщает запрос, для этого тебе поможет консоль запросов. По твоему коду - погугли, чем плохи запросы в цикле |
|||
8
Ненавижу 1С
гуру
10.10.17
✎
21:43
|
Первый регистр одним запросом выгружает в регистр.
Второй регистр одной записью в регистр. Дебеторскую задолженность принято оформлять в 1с приходом. |
|||
9
xXeNoNx
10.10.17
✎
22:02
|
не ну, а че конструктор отработал нормально...
(0) Правильной дорогой идешь... Радченко возьми, через пару глав увидишь где что можно оптимизировать и как на запросы переписать... Основной косяк, на данном этапе - проверь оба цикла.., не смущает что он 2 раза прогоняется? |
|||
10
xXeNoNx
10.10.17
✎
22:03
|
Мля, вы еще тут про блокировки расскажите и ткните носом...
Хотел бы я на ваши художества в начале посмотреть |
|||
11
banan_CHIK_
11.10.17
✎
12:44
|
Спасибо, ребята! Спасибо за подсказки. Рад, что развеселил кодом)
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |