Все технические форумы на одном сайте Удобный поиск информации с популярных форумов в одном месте
Вопрос: Какой регистр накопления лучше использовать?

Решил порешать задачки из задачника подготовки к спецу по платформе. Первая задачка по оперативному учету. Нужно на основании регистра накопления построить отчет "остатки товаров" и "продажи" в примерах видео которые я смотрю предлагается создавать два регистра остатков
1) "Остатки товаров" (Измерения: Номенклатура. Ресурсы: Количество) для контроля отрицательных остатков
2) "Партии товаров" (Измерения: Партия, Номенклатура. Ресурсы: Количество, Себестоимость) для партионного учета

Вопрос: зачем два регистра если можно использовать один, в регистре ПартииТоваров есть и Номенклатура и Количество.

А для отчета продажи предлагается создать оборотный регистр оборотов (Измерения: Номенклатура. Ресурсы: Количество, Себестоимость, Выручка).

Вопрос: Зачем если можно использовать обороты из регистра ПартииТоваров?
--- Объединение сообщений, 9 ноя 2017 ---
У остатков обороты можно получить только на начало и на конец периода. А у оборотного на каждую дату оборотов?
Ответ:
Вот такие отчеты надо построить:



Достаточно для этого будет одного регистра ПартииТоваров (Измерения: Партия, Номенклатура. Ресурсы: Количество, Себестоимость)
Вопрос: Отмена регистрации записи регистра в РИБ

Добрый день. Не убирается регистрация записей регистра сведений в в РИБ. Делаю по учебнику , запросом выбираю записи, для каждой устанавливаю отбор регистра по всем измерениям и потом
ПланыОбмена.УдалитьРегистрациюИзменений(УзелДляОбработки, Набор);
Никкакой ошибки нет, просто записи о регистрации не пропадают. Что делать?
вот код.

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

        //// Здесь в отладчике видна одна запись регистра

        Набор.Прочитать();
        
        ПланыОбмена.УдалитьРегистрациюИзменений(УзелДляОбработки, Набор);    
        
    КонецЦикла;
Ответ: () Вы запутались в трёх соснах, как мне кажется. В попытке читать наборы регистрации изменений с одного узла, чтобы удалить регистрацию с другого.

Запрос.УстановитьПараметр("УзелПланаОбмена", УзелКУдалению);
...
Набор.Отбор.УзелПланаОбмена.Установить(ВыборкаДетальныеЗаписи.УзелПланаОбмена);
...
ПланыОбмена.УдалитьРегистрациюИзменений(УзелДляОбработки, Набор)
Вопрос: Оптимизация регистров сведений

Дано.
Вариант 1

РС1
Изм1
Изм2
Изм3
Изм4
Рес1

Вариант 2

РС1
Изм1
Изм2
Рес1

РС2
Изм1
Изм3

РС3
Изм1
Изм3

Запись в регистр - одноразовая.
Чтение из регистра - очень много

При получении информации всегда используется фильтр Изм2, Изм3, Изм4


Вопрос какой вариант будет работать быстрее

запрос с фильтром к одному общему регистру.

или получение данных из 3 регистров в ВТ и внутренне соединение по изм1?
Ответ: () ну если меньше миллиона записей, забей тогда. Чего ты заморочился из-за 20 записей?
Вопрос: Измерения регистра накопления

Здравствуйте.

Подскажите пожалуйста по работе регистра накопления.

Регистр Накопления "ОстаткиТоваров" у которого
Реквизит Номенклатура
Реквизит Поставщик

Ресурс Количество.

Есть 3 операции.

1 операция
Приход Номенклатура1, Поставщик1, Количество = 5

2 операция
Приход Номенклатура1, Поставщик2, Количество = 5

3 операция
Расход Номенклатура1, Количество = 5

Вопрос, если сделать отчет по остаткам, то какая информация будет по Поставщику?
Ответ: Надо было мне написать Партия, вместо Поставщика. Это просто пример для разреза.

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

Вопрос с этим закрыт. Теперь буду разбираться с обходом по группировкам.

Всем спасибо за ответы!
Вопрос: Обработка проведения документа: движения по регистрам накопления.

Добрый день!
Просьба посмотреть код и отредактировать правильно, или сказать что больше редактировать нельзя..
Проблема в том что хотел создать одну инструкцию
1C
1
Для Каждого
но никак, (только две получается) получаются ошибки
1С только начал заниматься..
То же самое с
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
54
55
56
57
58
59
60
61
62
63
64
Процедура ОбработкаПроведения(Отказ, Режим)
    
    Движения.ОстаткиМатериалов.Записывать = Истина;
    Движения.СтоимостьМатериалов.Записывать = Истина;
    Движения.Продажи.Записывать = Истина;
    Движения.Вознаграждение.Записывать = Истина;
    
    Для Каждого ТекСтрокаПереченьНоменклатуры Из ПереченьНоменклатуры Цикл
        Если ТекСтрокаПереченьНоменклатуры.Номенклатура.ВидНоменклатуры = Перечисления.ВидыНоменклатуры.Материал Тогда 
            
            // регистр ОстаткиМатериалов Расход
            Движение = Движения.ОстаткиМатериалов.Добавить();
            Движение.ВидДвижения = ВидДвиженияНакопления.Расход;
            Движение.Период = Дата;
            Движение.Материал = ТекСтрокаПереченьНоменклатуры.Номенклатура;
            Движение.Склад = Склад;
            Движение.Количество = ТекСтрокаПереченьНоменклатуры.Количество;
            
            // регистр СтоимостьМатериалов Расход
            Движение = Движения.СтоимостьМатериалов.Добавить();
            Движение.ВидДвижения = ВидДвиженияНакопления.Расход;
            Движение.Период = Дата;
            Движение.Материал = ТекСтрокаПереченьНоменклатуры.Номенклатура;
            Движение.Стоимость = ТекСтрокаПереченьНоменклатуры.Количество * ТекСтрокаПереченьНоменклатуры.Стоимость;
        КонецЕсли;
        
        // Регистр Продажи 
        Движение = Движения.Продажи.Добавить();
        Движение.Период = Дата;
        Движение.Номенклатура = ТекСтрокаПереченьНоменклатуры.Номенклатура;
        Движение.Клиент = Клиент;
        Движение.Мастер = Мастер;
        Движение.Количество = ТекСтрокаПереченьНоменклатуры.Количество;
        Движение.Выручка = ТекСтрокаПереченьНоменклатуры.Сумма;
        Движение.Стоимость = ТекСтрокаПереченьНоменклатуры.Стоимость * ТекСтрокаПереченьНоменклатуры.Количество;
    КонецЦикла;
    
    //Регистр Вознаграждение
    Движение = Движения.Вознаграждение.Добавить();
    Для Каждого ТекСтрокаПереченьНоменклатуры Из ПереченьНоменклатуры Цикл  
        Если ТекСтрокаПереченьНоменклатуры.Номенклатура.ВидНоменклатуры = Перечисления.ВидыНоменклатуры.Услуга Тогда
            
            
            Движение.Период = Дата;
            Движение.Мастер = Мастер;
            Движение.Сумма = Движение.Сумма + ТекСтрокаПереченьНоменклатуры.Сумма;          
        КонецЕсли;      
    КонецЦикла;
    
    Если Движение.Сумма < 1000 Тогда
        Движение.Процент = 5;
    КонецЕсли;
    
    Если Движение.Сумма >= 1000 И Движение.Сумма <= 5000 Тогда
        Движение.Процент = 10;
    КонецЕсли;
    
    Если Движение.Сумма > 5000 Тогда
        Движение.Процент = 15;
    КонецЕсли;
    
    Движение.Вознаграждение = Движение.Сумма * Движение.Процент / 100;
    
КонецПроцедуры
Ответ: Переменная Движение у тебя постоянно переприсваивается.
Пока дойдет до подсчета суммы, там уже движение другого регистра.
Пользуйся отладчиком, чтобы посмотреть какие значения в каких переменных лежат.
Вопрос: Одна позиция зависла в регистре

Здравствуйте. Проблема в том, что только одна позиция из номенклатуры (водка " Старая марка") не передаётся в регистр №2 и не удаётся её списать с регистра №1. Проще говоря повисла в первом регистре и ничего с ней сделать не получается, а списать нужно. Может кто знает в чём может быть проблема?

Вложения:

  • Размер файла:
    16,3 КБ
    Просмотров:
    7
  • Размер файла:
    15,9 КБ
    Просмотров:
    7
Ответ:
Этот вопрос к 1С никаким боком не относится.
Почему Вы не постите этот вопрос на форумах egais2016.ru , fsRar.ru ?
или, как у Вас там на скриншоте написано - "Обратитесь в техническую поддержку ООО "Гранд""?

Как это вообще понять - Вы в сентябре пытаетсь провести документ "Передача в регистр №2 ЕГАИС" от 03.07.2017 с датой запроса 10.07 2017?

Я слабо улавливаю - где Вы раньше были?
Почему Вам надо в сентябре оформлять и подтверждать июльскими датами документ, что Вы не отправили в ЕГАИС и не провели в июле?
Почему Вам надо передавать списывать (актом списания от 28.08 в сентябре 06.09?

Переделывайте всё сегодняшними датами
Вопрос: Запрос к регистру бухгалтерии

Здравствуйте.

Не получается построить запрос к регистру бухгалтерии.
Вот запрос:
Код:
ВЫБРАТЬ
    ХозрасчетныйОстатки.Субконто1,
    ХозрасчетныйОстатки.Субконто2,
    ХозрасчетынйОстатки.Субконто3,
    ХозрасчетныйОстатки.СуммаОстаток
ИЗ
    РегистрБухгалтерии.Хозрасчетный.Остатки(
            &ДатаОстатков,
            Счет = &СчетУчета,
            &ВидыСубконто,
            Организация = &Организация
                                И Субконто2 = &ОС) КАК ХозрасчетныйОстатки
1. Я добавил на счёт "субконто 3" в режиме предприятия. Но почему то вылетает ошибка что поле не найдено. Но субконто есть и заполнено. Что я не так делаю?
2. Как проверить одним запросом остаток основных средств на счёте? Счёт 001. На нём есть ОС. Количественного учета нет. Только суммовой. Мне нужно проверить все ли ОС которые есть в табличной части документа есть на остатке. Как передать список через оператор В понятно. Но тогда я получу те что есть в списке. И мне нужно будет дополнительно проверять совпадает ли количество с табличной частью документа. Например в документе передаём 3 основных средства. А на остатке 2. Как проверить что одного не хватает? И какого именно..... В запросе.
3. Зачем в параметры передаётся массив "ВидыСубконто"? Нашёл пример в интернете.
Ответ:
Каким образом могут "похерить" мой документ обновлением?
Вадим выше писал что если есть какие то изменения в РБ или в него добавят новый регистратор то может похерится. Но опять же не сам документ а только его движения. Так как у меня "забаланс" то в принципе если такое случится добавляем его опять регистратором и перепроводим.
Вообще не понял... А при чём тут мой документ? Он на забалансе делает движения. При чём тут отборы по "каким то документам"?
Вопрос: найти и собрать в одном месте все запросы по определенному регистру

никто не занимался такой аналитикой?
простой пример: вы собираетесь изменить структуру давно живущего своим бытом регистра. для корректного изменения необходимо просмотреть все обращения к регистру и внести в них правки по потребности.
когда случаев использования десятки можно и напролом зачитать все, но когда запросов свыше сотни - становится лень.
было бы идеально если бы они собирались в файлик консоли запросов.
и это я еще не упомянул менеджеры и коллекции движений по регистру. там бы тоже не помешали тулзы полезные.
Ответ: () Глобальный поиск ИМХО удобнее. F8 и т.д. К тому же он находит списки в формах и прочее.
Вопрос: Не закрывается регистр НЗП при комплектации номенклатуры

Добрый день!
Помогите, пожалуйста, разобраться.
На конец месяца после проведения расчета с/с не закрывается регистр НЗП.
Проводим следующие документы:
1. Передача товара с видом операции Передача материалов переработчику - Передаем наш товар стороннему контрагенту на фасовку. (например, у нас конфеты сфасованы по 2,5 кг, мы их ему передаем, и он фасует по 0,5 кг). Движения делаются только в регистрах, проводок нет. Из партий товаров на складах товар переходит в партии товаров переданные
2. После получения товара от фасовщика делаем документ Комплектация товара с видом операции поступление от переработчика. Исходный товар списывается из партий переданных, приходуется в НЗП, а новый товар приходуется в Партии товаров на складах. Счет учета затрат 20.01.1. Проводки и в сумме и в количестве формируются как надо Д20 К41 старый товар Д41 новый товар К20 . ОСВ на 20 счету в январе закрата. Не закрыт был только регистр НЗП.
Я думала, что после расчета с/с он закроется, но - нет.
Делаем те же документы в феврале, и тут уже на счете 20 повисают остатки, т.к. сумма, по которой приходуется новый товар на склад берется из регистра НЗП, а т.к. он не закрыт и в феврале появляется новый приход в НЗП, то сумма берется средняя (с учетом январского прихода). В итоге Д20 К41 старый товар - сумма одна, а Д41 новый товар К20 - сумма другая, счет 20 не закрыт, регистр НЗП не закрыт.

Что еще нужно настроиить ?
Статья затрат одна - Расфасовка (затраты материальные, производственные), номенклатурная группа одна, подразделение одно. Все движения делает только один документ Комплектация.Не могу понять что мешает закрыть регистр на конец месяца
Ответ:
нет не решили
пока делаю корректировки записей регистров и закрываю НЗП вручную. Но мне совсем не по душе этот вариант
Вопрос: Обращение к регистру сведений

Всем привет.
Имеется РегистрСведений "ПоследПоказанияЭлСчетчика" Измерения "Гараж" Ресурс "Кватт"
ОбщийМодуль "ОбращьРегистр" Код:
Код 1C
1
2
3
4
5
6
              Функция ПолучитьПоследнЭл(АктуальнаяДата,ЭлементНачислений) Экспорт
                    Отбор = Новый Структура ("Гараж",ЭлементНачислений);
                    Эл = РегистрыСведений.ПоследПоказанияЭлСчетчика.ПолучитьПоследнее(АктуальнаяДата,Отбор);
                    Возврат Эл.Кватт;
              КонецФункции
              
Справочник "ВладельцыГаражей" с номерами гаража
Документ "Начисления", Имеет один из Реквизитов: "ПредыдущиеПоказЭлСчётчика"
В модуле формы "Начисления" Часть кода:
Код 1C
1
2
3
4
5
6
7
8
 
              &НаКлиенте
              Процедура ГаражПриИзменении(Элемент)
                     ...
             Объект.ПредыдущиеПоказЭлСчётчика = ОбращьРегистр.ПолучитьПоследнЭл(Объект.Дата,Объект.Гараж);
                     ...
          КонецПроцедуры
              
Требуется чтобы в Реквизит документа "ПредыдущиеПоказЭлСчётчика" вставлялись данные из регистра сведений присвоенные к Гаражу (то есть, Кватт на каждый гараж ведь заполняются).
Прошу помочь уже ни знаю что делать.
Ответ: Не подставляет данные по Актуальной дате, хотя в Регистре периодичность "В пределах секунды"

Добавлено через 49 минут
Заметил такую шнягу, что у меня Периодичность стоит "В пределах секунды", прикол в том что после наступления времени на ПК 0:00 он взял все таки последние данные, так вот вопрос почему он считает что периодичность "В пределах дня"

Добавлено через 2 часа 58 минут
Спасибо. Проблема решена.