8.х Как удалить движения Документа

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 8"", создана пользователем студент_1 курс, 9 сен 2009.

  1. TopicStarter Overlay
    студент_1 курс
    Offline

    студент_1 курс

    Регистрация:
    9 сен 2009
    Сообщения:
    8
    Симпатии:
    0
    Баллы:
    1
    Как удалить движения Документа по Регистру Накопления, в момент ввода Документа на Основании. (Движения ДокументаОснования)
  2. lazy
    Offline

    lazy Модераторы Команда форума Модератор

    Регистрация:
    1 сен 2007
    Сообщения:
    2.127
    Симпатии:
    4
    Баллы:
    29
    Это методически не правильный подход.

    А если потом пользователь отменит действие, которое привело к удалению движений в регистре накопления? Обратно будете их формировать?

    Более правильным подходом является формирование записей в том же регистре со знаком обратным знаку первого документа(Расход/Приход), либо записей с отрицательным значением в зависимости от контекста задачи.
  3. TopicStarter Overlay
    студент_1 курс
    Offline

    студент_1 курс

    Регистрация:
    9 сен 2009
    Сообщения:
    8
    Симпатии:
    0
    Баллы:
    1
    Задача следующая.
    необходимо предусмотреть возможность приема заявки(Док.Заказ), для отражения факта его исполнения с указанием исполнителя и самой услуги ее стоимости (два документа Док.приемЗаказа, Док.Оказание.Услуги) у двух последних Реквизиты (Заказ, Исполнитель, ХодВыполнения) все документы проводятся по одному РегиструНакопления Заказа (Измерения: Заказ,Исполнитель,Услуга, ХодВыполнения Ресурсы: Время, Стоимость) Необходим Отчет по Заказам за период с указанием Выолненных иНеВыполненных с разбивкой по сотрудникам и указанием сумм по оплаченным.
  4. lazy
    Offline

    lazy Модераторы Команда форума Модератор

    Регистрация:
    1 сен 2007
    Сообщения:
    2.127
    Симпатии:
    4
    Баллы:
    29
    1. Убедительно прошу в дальнейшем не посылать мне ЛС с просьбой зайти в тему - я просматриваю почти все новые темы, и отвечаю по мере возможности.
    2. Настоятельно рекомендую использование знаков препинания в своем повествовании. Хотя бы разделение на отдельные предложения. В идеале - структурирование своих мыслей в отдельные пункты. Та каша которая вывалена в предыдущем сообщении очень тяжело читается. И если я или другие посетители будут отвечать Вам в той же манере - Вы врядли что либо поймете. :)

    От нравоучений к делу:
    Как я и говорил, вся эта схема полностью описывается двумя записями в регистр накопления - Приход/Расход.

    Есть документ Заказ - он делает Приход в регистр накопления. Соответственно если мы обратимся к остаткам данного регистра то будет отображены текущие работы стоящие в очереди на выполнение.

    Когда услуга выполнена - проводим документ ОказаниеУслуги. Этот документ делает в регистр запись Расход, убирая таким образом остатки по количеству услуг необходимых к выполнению. Отсутствие остатков по регистру означает, что работы в данный момент нет и сотрудники могут играть в пасьянс. Если например выполнено меньше услуг, чем было указано в заказе - то можно считать заказ частично выполненным. И это означает, что работа над ним продолжается...
  5. TopicStarter Overlay
    студент_1 курс
    Offline

    студент_1 курс

    Регистрация:
    9 сен 2009
    Сообщения:
    8
    Симпатии:
    0
    Баллы:
    1
    Документ.Заказ имеет два Реквизита, Клиент и ХодВыполнения, ХодВыполнения = НеВыполнен и Примечание в котором указывает проблемма скоторой обратился Клиент. Хотя Его видимо можно не проводить. На его Основании я ввожу Док.ПриемЗаказа, который имеет Реквизиты: Заказ (Тип.Док.Заказ.Ссылка), Исполнитель, ХодВыполнения = ПереданВРаботу ТЧ с перечнем Услуг). На основании Док.ПриемЗаказа я ввожу Док.ОказаниеУслуги все тоже только ХодВыполнения=Выполнено.
    Как используя предложенную Вами схему мне Создать необходимый мне Отчет.
  6. lazy
    Offline

    lazy Модераторы Команда форума Модератор

    Регистрация:
    1 сен 2007
    Сообщения:
    2.127
    Симпатии:
    4
    Баллы:
    29
    Не осознаю, зачем нужен реквизит ХодВыполнения, коль скоро он имеет только три положения. Все эти положения можно не вносить в регистр, создав в коде соответствующий алгоритм описывающий ХодВыполнения в зависимости от условий.
    НеВыполнен - есть заказ но нет документа приемЗаказа.
    ПереданВРаботу - есть остатки по регистру
    Выполнено - нет остатков по регистру.

    Теперь про отчет. Для получения информации о заказах в предложенной схеме - все, что нам нужно, обратится к ОстаткамИОборотам по регистру. Наличие остатков будет означать Невыполненные либо ЧастичноВыполненные заказы. Наличие оборотов, без остатков будет означать выполненные в указанный период заказы.

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

    студент_1 курс

    Регистрация:
    9 сен 2009
    Сообщения:
    8
    Симпатии:
    0
    Баллы:
    1
    | КоличествоНачальныйОстаток,
    | КоличествоКонечныйОстаток,
    | КоличествоОборот

    Откуда это берется исходя из моего Регистра.Заказы и количество чего это.
  8. lazy
    Offline

    lazy Модераторы Команда форума Модератор

    Регистрация:
    1 сен 2007
    Сообщения:
    2.127
    Симпатии:
    4
    Баллы:
    29
    У Вас нет в регистре ресурса Количество? А как будет отображен заказ на изготовление 32 трамваев?
  9. Letos
    Offline

    Letos Опытный в 1С

    Регистрация:
    23 ноя 2009
    Сообщения:
    218
    Симпатии:
    0
    Баллы:
    26
    Есть общий модуль в котором, создаётся движение по регистрам в частности "Выпуск продукции и услуг в плановых ценах", есть необходимость вместо него сделать движение по "Реализация услуг". Но этот общий модуль заблокирован для редактирования. Что бы не переписывать все проведения занова хотелось бы просто удалить движение по "Выпуск продукции и услуг в плановых ценах" и создать движение по "Реализация услуг".

    Собственно вопрос. как удалить движение по регистру из документа?
  10. nomad_irk
    Offline

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    7.549
    Симпатии:
    716
    Баллы:
    204
    НаборЗаписей = РегистрыНакопления.<Регистр>.СоздатьНаборЗаписей();
    НаборЗаписей.отбор.Регистратор.Установить(<регистратор>);
    НаборЗаписей.Записать();

Поделиться этой страницей