Форум программистов, компьютерный форум, киберфорум
1С: Собственные программы
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.55/11: Рейтинг темы: голосов - 11, средняя оценка - 4.55
1 / 1 / 1
Регистрация: 12.04.2012
Сообщений: 52

Объясните пджлст как посчитать и записать в Регистр накопления данные

07.08.2019, 09:31. Показов 2487. Ответов 7

Студворк — интернет-сервис помощи студентам
Есть 2 таблицы
1. Поступление
Табличная часть
номенклатура
количество
цена
сумма
2. Реализация
Табличная часть
номенклатура
количество
цена
сумма
Регистр Накопления:ВсеДанные
Номенклатура
количество
ценаЗакупки - регистраторПоступление
СуммаЗакупки регистраторПоступление
ценаПродажи РегистраторРеализация
СуммаПродажи РегистраторРеализация
Прибыль - Надо вычислить, само собой это СуммаПродажи-СуммаЗакупки
а как в коде реализовать не понимаю.
Когда в // регистр ВсеДанные Расход
Движения.ВсеДанные.Записывать = Истина;
Для Каждого ТекСтрокаТовары Из Товары Цикл
Движение = Движения.ВсеДанные.Добавить();
Движение.ВидДвижения = ВидДвиженияНакопления.Расход;
Движение.Период = Дата;
Движение.Номенклатура = ТекСтрокаТовары.Номенклатура;
Движение.Количество = ТекСтрокаТовары.Количество;
Движение.СуммаПродажи = ТекСтрокаТовары.Сумма;
Добавляю Движение.Прибыль=Движение.СуммаПродажи-Движение.СуммаЗакупки результативно выводит только сумму продажи.
Как добиться своего ответа найти не могу =(
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
07.08.2019, 09:31
Ответы с готовыми решениями:

Как загрузить данные из xml файла в регистр накопления (через план обмена)?
Здравствуйте! Делаю курсовик по 1С, реализация обмена данными. У меня есть 2 регистра накопления с инфой. Через план обмена всю инфу из них...

Регистр сведений «Списанные материалы из эксплуатации». Почему регистр сведений, а не регистр накопления?
Существует Регистр сведений «Списанные материалы из эксплуатации». Регистр сведений предназначен для отражения данных, необходимых при...

Не могу понять как создать Регистр накопления согласно моей конфигурации
Здравствуйте Друзья:) Обращаюсь к Вам с Очередной просьбой по поводу своей собственной Конфигурации "Статистика и инвентаризация...

7
 Аватар для dggrom
198 / 158 / 45
Регистрация: 23.08.2014
Сообщений: 807
07.08.2019, 09:39
Если честно, то тебе наврятли помогут, потому что совершенно не читаема что ты ты хочешь.
Засунь код хотя бы в теги, да распиши что ты хочешь. А ты только перечислил свои ТЧ и привел кусок типового кода. Что не получается то ?
1
1 / 1 / 1
Регистрация: 12.04.2012
Сообщений: 52
07.08.2019, 09:42  [ТС]
Читабельность исправить попытался , пишет исправить можно только в течении 5 минут.
Есть 2 таблицы
1. Поступление
Табличная часть
номенклатура
количество
цена
сумма

2. Реализация
Табличная часть
номенклатура
количество
цена
сумма

Регистр Накопления:ВсеДанные
Номенклатура
количество
ценаЗакупки - регистраторПоступление
СуммаЗакупки регистраторПоступление
ценаПродажи РегистраторРеализация
СуммаПродажи РегистраторРеализация
Прибыль - Надо вычислить, само собой это СуммаПродажи-СуммаЗакупки

а как в коде реализовать не понимаю.
Когда в
1C
1
2
3
4
5
6
7
8
9
// регистр ВсеДанные Расход
Движения.ВсеДанные.Записывать = Истина;
Для Каждого ТекСтрокаТовары Из Товары Цикл
Движение = Движения.ВсеДанные.Добавить();
Движение.ВидДвижения = ВидДвиженияНакопления.Расход;
Движение.Период = Дата;
Движение.Номенклатура = ТекСтрокаТовары.Номенклатура;
Движение.Количество = ТекСтрокаТовары.Количество;
Движение.СуммаПродажи = ТекСтрокаТовары.Сумма;
Добавляю Движение.Прибыль=Движение.СуммаПродажи-Движение.СуммаЗакупки результативно выводит только сумму продажи.

Как добиться своего ответа найти не могу =(
0
 Аватар для dggrom
198 / 158 / 45
Регистрация: 23.08.2014
Сообщений: 807
07.08.2019, 09:49
Цитата Сообщение от murena Посмотреть сообщение
Добавляю Движение.Прибыль=Движение.СуммаПродажи-Движение.СуммаЗакупки результативно выводит только сумму продажи.
Я в коде который ты показал не вижу СуммыЗаукпки в движение. Ты уверен что она там есть ?
В дереве методанных есть такой ресурс или реквизит у регистра ?
1
1 / 1 / 1
Регистрация: 12.04.2012
Сообщений: 52
07.08.2019, 09:59  [ТС]
1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
Процедура ОбработкаПроведения(Отказ, Режим)
    //{{__КОНСТРУКТОР_ДВИЖЕНИЙ_РЕГИСТРОВ
    // Данный фрагмент построен конструктором.
    // При повторном использовании конструктора, внесенные вручную изменения будут утеряны!!!
 
    // регистр Себестоимость Расход
    Движения.Себестоимость.Записывать = Истина;
    Для Каждого ТекСтрокаТовары Из Товары Цикл
        Движение = Движения.Себестоимость.Добавить();
        Движение.ВидДвижения = ВидДвиженияНакопления.Расход;
        Движение.Период = Дата;
        Движение.Номенклатура = ТекСтрокаТовары.Номенклатура;
        Движение.Количество = ТекСтрокаТовары.Количество;
        Движение.Сумма = ТекСтрокаТовары.Сумма;
    КонецЦикла;
 
    // регистр Продажа 
    Движения.Продажа.Записывать = Истина;
    Для Каждого ТекСтрокаТовары Из Товары Цикл
        Движение = Движения.Продажа.Добавить();
        Движение.Период = Дата;
        Движение.Номенклатура = ТекСтрокаТовары.Номенклатура;
        Движение.Количество = ТекСтрокаТовары.Количество;
        Движение.Сумма = ТекСтрокаТовары.Сумма;
    КонецЦикла;
 
    // регистр ВсеДанные Расход
    Движения.ВсеДанные.Записывать = Истина;
    Для Каждого ТекСтрокаТовары Из Товары Цикл
        Движение = Движения.ВсеДанные.Добавить();
        Движение.ВидДвижения = ВидДвиженияНакопления.Расход;
        Движение.Период = Дата;
        Движение.Номенклатура = ТекСтрокаТовары.Номенклатура;
        Движение.Количество = ТекСтрокаТовары.Количество;
        Движение.СуммаПродажи = ТекСтрокаТовары.Сумма;
        //Сюда такой код я вставить не могу, так как в расход не считает Движение.СуммаЗакупки
        //Движение.СуммаЗакупки фиксируется в модуле документа Приход  / Не могу связать данные этих двух документов в 1 Строку Прибыль
        //Движение.Прибыль=Движение.СуммаПродажи - Движение.СуммаЗакупки;
        
Движения.Записать();        
КонецЦикла;
 
    //}}__КОНСТРУКТОР_ДВИЖЕНИЙ_РЕГИСТРОВ
КонецПроцедуры
Миниатюры
Объясните пджлст как посчитать и записать в Регистр накопления данные  
Изображения
 
0
 Аватар для dggrom
198 / 158 / 45
Регистрация: 23.08.2014
Сообщений: 807
07.08.2019, 10:52
murena, запросом вытаскивай остатки по твоему товару. В частности тебе необходимо получить количество и СуммуЗакупки отдельно. Там ты сможешь вытащить себестоимость штуки и сформировать СуммуЗакупки для данного движения.

1C
1
Движение.Прибыль=Движение.СуммаПродажи - ПолученнаяЗапросомСуммаЗкупки;
Добавлено через 6 минут
Напоминает 1 билет спеца, только ты какой то странные регистр создаешь, не понятно зачем он тебе нужен вообще...
1
1 / 1 / 1
Регистрация: 12.04.2012
Сообщений: 52
07.08.2019, 11:43  [ТС]
На счет запроса , да понял, но не могу дойти своим скудным мозгом
как вытаскивать результаты своего запроса.
На текущий момент попытался контролировать остатки, что если количество реализации в Документе Реализация больше
чем количество номенклатуры по приходу, выдать ошибку
1C
1
Сообщить ("недостаточно товара по приходу");
У меня это выглядит так:
1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
Процедура ОбработкаПроведения(Отказ, Режим)
    //{{__КОНСТРУКТОР_ДВИЖЕНИЙ_РЕГИСТРОВ
    // Данный фрагмент построен конструктором.
    // При повторном использовании конструктора, внесенные вручную изменения будут утеряны!!!
    
    // регистр Учет Расход
    Движения.Учет.Записывать = Истина;
    Для Каждого ТекСтрокаТовары Из Товары Цикл
        Движение = Движения.Учет.Добавить();
        Движение.ВидДвижения = ВидДвиженияНакопления.Расход;
        Движение.Период = Дата;
        Движение.Номенклатура = ТекСтрокаТовары.Номенклатура;
        Движение.Количество = ТекСтрокаТовары.Количество;
        Движение.Сумма = ТекСтрокаТовары.Сумма;
    КонецЦикла;
 
            //{{КОНСТРУКТОР_ЗАПРОСА_С_ОБРАБОТКОЙ_РЕЗУЛЬТАТА
    // Данный фрагмент построен конструктором.
    // При повторном использовании конструктора, внесенные вручную изменения будут утеряны!!!
    
    Запрос = Новый Запрос;
    Запрос.Текст = 
        "ВЫБРАТЬ
        |   УчетОстатки.Номенклатура КАК Номенклатура,
        |   УчетОстатки.КоличествоОстаток КАК КоличествоОстаток,
        |   РасходнаяНакладнаяТовары.Количество КАК Количество
        |ИЗ
        |   РегистрНакопления.Учет.Остатки(
        |           ,
        |           Номенклатура В
        |               (ВЫБРАТЬ
        |                   РасходнаяНакладнаяТовары.Номенклатура КАК Номенклатура
        |               ИЗ
        |                   Документ.РасходнаяНакладная.Товары КАК РасходнаяНакладнаяТовары
        |               ГДЕ
        |                   РасходнаяНакладнаяТовары.Ссылка = &Ссылка)) КАК УчетОстатки,
        |   Документ.РасходнаяНакладная.Товары КАК РасходнаяНакладнаяТовары
        |ГДЕ
        |   УчетОстатки.КоличествоОстаток < РасходнаяНакладнаяТовары.Количество";
    
    Запрос.УстановитьПараметр("Ссылка", Ссылка);
    
    РезультатЗапроса = Запрос.Выполнить();
    
    //Если РезультатЗапроса.Пустой() ТОГДА
         //Отказ = Истина;
    
    ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
    
    Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
        Сообщить("недостаточно товара");
    КонецЦикла;
КонецПроцедуры;
Закоментил своё "Если",так как не работает, и пытаюсь найти инфу, как сформировать условие
После этого хочу перейти к расчету прибыли, так как если укажу количество товара больше чем есть, всё будет высчитывать не верно


Контроль остатков сделать получилось, сделал так:
Добавлено через 13 минут
1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
Запрос = Новый Запрос;
    Запрос.Текст = 
        "ВЫБРАТЬ
        |   УчетОстатки.Номенклатура КАК Номенклатура,
        |   УчетОстатки.КоличествоОстаток КАК КоличествоОстаток,
        |   РасходнаяНакладнаяТовары.Количество КАК Количество
        |ИЗ
        |   РегистрНакопления.Учет.Остатки(
        |           ,
        |           Номенклатура В
        |               (ВЫБРАТЬ
        |                   РасходнаяНакладнаяТовары.Номенклатура КАК Номенклатура
        |               ИЗ
        |                   Документ.РасходнаяНакладная.Товары КАК РасходнаяНакладнаяТовары
        |               ГДЕ
        |                   РасходнаяНакладнаяТовары.Ссылка = &Ссылка)) КАК УчетОстатки,
        |   Документ.РасходнаяНакладная.Товары КАК РасходнаяНакладнаяТовары
        |ГДЕ
        |   УчетОстатки.КоличествоОстаток < 0";
    
    Запрос.УстановитьПараметр("Ссылка", Ссылка);
    
    РезультатЗапроса = Запрос.Выполнить();
    
    Если НЕ РезультатЗапроса.Пустой() ТОГДА
    Отказ = Истина;
 
        ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
        
        Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
            
            Сообщить("Недостаточно товара");
            
        КонецЦикла;
        КонецЕсли;
    //}}КОНСТРУКТОР_ЗАПРОСА_С_ОБРАБОТКОЙ_РЕЗУЛЬТАТА
0
 Аватар для dggrom
198 / 158 / 45
Регистрация: 23.08.2014
Сообщений: 807
07.08.2019, 12:34
murena, я так понимаю ты создал еще один регистр и назвал его УчетОстатков ?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
07.08.2019, 12:34
Помогаю со студенческими работами здесь

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

Объясните, как работает буфер накопления?
Объясните, как работает буфер накопления?

Не получается записать данные в регистр сведений
Добрый день. Произвожу запись данных в 1С (Регистр КонтактнаяИнформация) из xml файла. Ругается на метод Запись. Читала возможные...

регистр накопления
добрый день! у меня такая проблема, не могу понять как в 1С 8.1 обратится к записям документа в регистре накопления, из отчета. Тоесть...

регистр накопления
Создайте регистр &quot;Задолженности&quot; таким образом, чтобы он позволил в разрезе контрагентов учитывать их долги. На будущее договоримся, если...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут Суть: - Группа наркоманов из 10 человек. - Только один инфицирован ВИЧ. - Колются одной иглой. - Колются раз в день. - Колются последовательно через. . .
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица. Задача: зафиксировать три левых колонки в отчете. Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) / / . . .
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations": true, . . .
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru