Добрый день, сейчас начала разбираться с вводом на основании, Допустим у менять есть документ(Общий приход), после проведения, товар добавляется в РН, а с этого документа я создаю на основании Другой документ, хочется, чтобы можно было создавать несколько документов на основании, но проблема заключается в том, что если я в первом документе на основании создам не весь товар или не всё количество товара от изначального, то при втором создании на основании у меня будет добавлен весь товар, а не остаток, как мне возможно сделать именно так, чтобы добавлялся остаток, а не опять весь товар, который есть в первом документе? возможно как-то сделать при создании самой функции(ввод ... через конструктор)?
---
в процедуру заполнения ТЧ встраиваете примерно такой запрос

```1c
    ВЫБРАТЬ
    ЗаказыПоставщикамОстатки.ДоговорКонтрагента,
    ЗаказыПоставщикамОстатки.ЗаказПоставщику,
    ЗаказыПоставщикамОстатки.СтатусПартии,
    ЗаказыПоставщикамОстатки.Номенклатура,
    ЗаказыПоставщикамОстатки.ХарактеристикаНоменклатуры,
    ЗаказыПоставщикамОстатки.Цена,
    ЗаказыПоставщикамОстатки.ЕдиницаИзмерения,
    ЗаказыПоставщикамОстатки.СтавкаНДС,
    ЗаказыПоставщикамОстатки.КоличествоОстаток,
    ЗаказыПоставщикамОстатки.СуммаВзаиморасчетовОстаток,
    ЗаказыПоставщикамОстатки.СуммаУпрОстаток
    ИЗ
    РегистрНакопления.ЗаказыПоставщикам.Остатки КАК ЗаказыПоставщикамОстатки
    ГДЕ
    ЗаказыПоставщикамОстатки.ЗаказПоставщику = &ЗаказПоставщику
```

Ну и значение &ЗаказПоставщику устанавливаете равным ДокументОснование.

Это запрос к регистру из типовой конфы, регистр аналогичен вашему
---
то при втором создании на основании у меня будет добавлен весь товар, а не остаток, как мне возможно сделать именно так, чтобы добавлялся остаток, а не опять весь товар, который есть в первом документе?

перед заполнением ТЧ второго документа делайте выборку всех созданных ранее документов и исключайте их товары.
---
есть документ(Общий приход), после проведения, товар добавляется в РН, а с этого документа я создаю на основании Другой документ
Первый документ делает приход в РН ? А "другой документ" делает расход в этот же РН ?
Если да - то просто запросом надо собрать Остаток РН по первому документу. Всё.
А делать выборку по документам - дурной тон.
---
то при втором создании на основании у меня будет добавлен весь товар, а не остаток, как мне возможно сделать именно так, чтобы добавлялся остаток, а не опять весь товар, который есть в первом документе? возможно как-то сделать при создании самой функции(ввод ... через конструктор)?
Через конструктор не получится, нужно самому описывать функцию поиска документов, созданных на основании первичного документа.
---
Это проще через запрос сделать будет, я правильно понимаю?
---
Это проще через запрос сделать будет, я правильно понимаю?

Да, лучше запросом.
---
Только не понятно, зачем такие выверты нужны.
---
Допустим как вариант, если заказать товар у поставщика, и по нему создавать приходку, если пришел не весь товар, то приходка будет одна, а при втором создании документа будет уже оставшийся товар только добавлен, а не весь
---
)Допустим как вариант, если заказать товар у поставщика, и по нему создавать приходку, если пришел не весь товар, то приходка будет одна, а при втором создании документа будет уже оставшийся товар только добавлен
Может проще, создать РС, в котором хранить данные о полученных товарах по заказу и документах поступления. И создавая документ поступления анализировать созданный Регистр сведений.
---
Да, я сделала это запросом, но Если у меня 2 товара в изначальном документе, а Пришел всего 1, то сравнивая их у меня по какой-то причине, выводился весь товар с ЗаказаТовара, а вот в приходной накладной, где только 1 товар был получен, выводится 2 раза 1 и тот же товар и количество, что не так с запросом?

```1c
    ВЫБРАТЬ
    ПриходнаяНакладнаяНоменклатура.Ссылка.ДокументОснование КАК ДокументОснование,
    ПриходнаяНакладнаяНоменклатура.Номенклатура КАК Номенклатура,
    ПриходнаяНакладнаяНоменклатура.Количество КАК Количество
    ПОМЕСТИТЬ втТовар
    ИЗ
    Документ.ПриходнаяНакладная.Номенклатура КАК ПриходнаяНакладнаяНоменклатура
    ;

    ////////////////////////////////////////////////////////////­////////////////////
    ВЫБРАТЬ
    Заказ.Ссылка КАК Ссылка,
    Заказ.Номенклатура КАК Номенклатура,
    Заказ.Количество КАК Количество,
    втТовар.Номенклатура КАК Номенклатура1,
    втТовар.Количество КАК Количество1
    ИЗ
    Документ.Заказ.Состав КАК Заказ
    Левое СОЕДИНЕНИЕ втТовар КАК втТовар
    ПО (Заказ.Ссылка = втТовар.ДокументОснование)
    Где
    Заказ.Ссылка = &Документ
```
---
Если у меня 2 товара в изначальном документе, а Пришел всего 1, то сравнивая их у меня по какой-то причине, выводился весь товар с ЗаказаТовара, а вот в приходной накладной, где только 1 товар был получен, выводится 2 раза 1 и тот же товар и количество, что не так с запросом?
Вообще то запрос к документам - это методологически неверно, к тому же я запроса вашего не видел.
---
Добавила запрос в предыдущем сообщении, изначально забыла(извиняюсь)
---
вы хотите один документ прихода на несколько разделить

 или от него создать несколько на основании
----------

ладно , помощников более чем :)
---
От него создавать несколько, если вдруг товар не сразу весь придёт, а часть, после уже при создании на основании, чтобы только остаток добавлялся в ТЧ
---
интересный случай

приходуется товар
1-5 строка товар есть
6-7 нет товара

алгоритм :
-------------------
--ждем товар
--это же прием товара
(есть документ, должно быть количество)

---------------------------------------------

вообще приходную накладную на несколько частей разделить - согласен
( при его наличии на приемке )
( для проведения в базе)
---
Пыталась сделать это запросом, но что-то ой запрос видимо не совсем отрабатывает так, как нужно, поэтому решила задать вопрос, потому что другого запроса что-то в голову не приходит
---
вы включаете человеческий фактор ?
или исключаете
или не принимаете во внимание

------------------

есть документ поступления

человек по нему принял :
---товар есть весь
---товара некоторого нет

дальше - он ждет, когда товар приедет ?
он делает пометку, что товар привезут потом ?
---
Да, Если товар не привезут потом(Которого нет), будет изменён первый документ, если товар будет привезён, то документ остаётся такой же какой и сейчас, просто в следующий раз создавая документ на его основании будет уже только недовезённый товар добавлен в ТЧ
---
Делаете РН по заказанным товарам. Приход - заказ поставщику , расход - поступление. При вводе на основании - ищите остатки по данному заказу из этого РН. Если товар так и не пришел, то лучше сделать документ, типа "закрытие заказа, который спишет не пришедшие товары.
Можно сделать Отчет по данному РН
и т д и т п.

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

```1c
    ВЫБРАТЬ
    ЗаказОбороты.Номенклатура КАК Номенклатура,
    ЗаказОбороты.КоличествоОборот КАК КоличествоОборот
    ИЗ
    РегистрНакопления.Заказ.Обороты(
    ,
    ,
    ,
    Заказ = &Заказ
    И Номенклатура В
    (ВЫБРАТЬ
    ПриходнаяНакладнаяНоменклатура.Номенклатура КАК Номенклатура
    ИЗ
    Документ.ПриходнаяНакладная.Номенклатура КАК ПриходнаяНакладнаяНоменклатура
    ГДЕ
    ПриходнаяНакладнаяНоменклатура.Ссылка.ДокументОснование = &Ссылка)) КАК ЗаказОбороты
```
---
Нетленка - это своя собственная конфигурация.

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

другой, когда вводит документ в базу

-------------------------

вам какой важнее ?
-----------------------------------------------
чтобы человек все принял
и отдал документ на оприходование
----------------------------------------------
чтобы человек принял часть товара ,
 часть не принял и дал документ
 на оприходование в таком виде
--------------------------------------------------

дальше как будет контроль ?

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

```1c
    ВЫБРАТЬ
    ЗаказыПоставщикамОстатки.ДоговорКонтрагента,
    ЗаказыПоставщикамОстатки.ЗаказПоставщику,
    ЗаказыПоставщикамОстатки.СтатусПартии,
    ЗаказыПоставщикамОстатки.Номенклатура,
    ЗаказыПоставщикамОстатки.ХарактеристикаНоменклатуры,
    ЗаказыПоставщикамОстатки.Цена,
    ЗаказыПоставщикамОстатки.ЕдиницаИзмерения,
    ЗаказыПоставщикамОстатки.СтавкаНДС,
    ЗаказыПоставщикамОстатки.КоличествоОстаток,
    ЗаказыПоставщикамОстатки.СуммаВзаиморасчетовОстаток,
    ЗаказыПоставщикамОстатки.СуммаУпрОстаток
    ИЗ
    РегистрНакопления.ЗаказыПоставщикам.Остатки КАК ЗаказыПоставщикамОстатки
    ГДЕ
    ЗаказыПоставщикамОстатки.ЗаказПоставщику = &ЗаказПоставщику
```

Ну и значение &ЗаказПоставщику устанавливаете равным ДокументОснование.

Это запрос к регистру из типовой конфы, регистр аналогичен вашему
---
Примерно так я и делала, только как я понимаю, нужно делать Выборку из Результат и после искать в Выборка.Следующий? а не в ТЧ старой
---
а где у вас выборка то? Вы просто запрос вставили, а заполняете другими данными
---
Да, извиняюсь, что не правильно задавала вопрос, всё разобралась с чем проблема была, Спасибо большое за помощь
---
Запросом, но не совсем понимаю, куда я его вставляю этот запрос
---
в модуле документа прихода у вас процедура заполнения табличной части. Вот в эту процедуру
---
но-но

от алгоритма работы зависит результат

у вас есть несколько связующих елементов

человек ( приемщик)
человек ( поставщик)
человек ( вводит документы в базу)

если между ними нет связи, то вы зря все делаете

---------------------------------------------------
если бы все это делал ваш документ сам,
то можете кодировать как и что хотите
---
Это я понимаю, но все базы изначально разрабатывают с 0, у меня есть какие-то маленькие детали, которые хочется видеть сейчас, а некоторые позже сделать уже или после чего-то опр.
---
железная логика
он работает на сайт однодневку один раз

на систему учета - печалька

я так понимаю, команда,архитектор,контроль, тестирование - не сюда и не сейчас :)
---
кажется, вы правильно поняли..... Почему-то люди не понимают, что купить растиражированную конфу дешевле, чем писать свою.
---
Проще написать свою, для понимания как и что работает, чтобы потом без труда устроиться на работу
---
а кто мешал это сделать раньше ?

и так , чтобы клиентов 15 поработали в сети полгода без проблем
---
Я не работаю на данный момент Программистом 1с, я на данный момент изучаю, через месяца 3-4 надеюсь, что устроюсь уже программистом 1с, просто если что-то не понятно, не всегда возможно найти в интернете, чтобы после понимать, что тут делать так, а тут так
---
так вы учитесь?
---
Да, пока какие-то моменты вообще не понимаю, иногда форумы помогают понять ту или иную тему
---
тогда учитесь правильно задавать вопросы, вам это поможет :)
---
Проблема в том, что мой запрос, даже если звучит правильно, то он выдаёт ошибку, хотя в параметры передаётся всё отлично, и он должен выводить в Результат грузить информацию, но ошибка чтения