Имя: Пароль:
1C
1С v8
Какими встроенными процедурами можно проверить остатки по каждому материалу?
, ,
0 Vika_22
 
27.09.11
14:14
День добрый.
Конфигурация: Бухгалтерия 2.0
Подскажите, пожалуйста, по следующему вопросу.
Необходимо делать документ ПоступлениеТоварофИУслуг  на основании документа РеализацияТовароИУслуг. При формировании документа поступления мне необходимо проверить остатки по каждому материалу и делать поступления только по тем позициям остатков, которых нет, или делать поступление материалов в том количестве, которого не хватает.  
Как я понимаю, существуют какие-то процедуры, которые можно использовать для проверки, подскажите, пожалуйста, какие процедуры использовать? У меня пока найти не получается.
1 Попытка1С
 
27.09.11
14:18
Смотри отчет "Контроль отрицательных остатков".
2 ErrorEd88
 
27.09.11
14:23
Можно допилить РТиУ - добавить колонку остаток в тч товары.
3 Vika_22
 
27.09.11
14:25
(2)Вы что!!!! Это же бухгалтерия, и еще документ Реализация - нельзя такое допиливать, а иначе потом мне руки отпилят за такое. И правильно сделают.
4 Vika_22
 
27.09.11
14:26
(1) В отчете непонятно, если честно.
5 GenV
 
27.09.11
14:27
(0) Сделать внешнюю обработку заполнения ТЧ в Поступлении. Там и проверять по бух. регистру остатки и заполнять.
6 Попытка1С
 
27.09.11
14:29
(4) Ну тогда (5)..
7 Vika_22
 
27.09.11
14:30
(5) Мне понятно где размещать проверку, но я просто не знаю как проверить.
8 DrShad
 
27.09.11
14:31
(7) простенький запрос
9 DrShad
 
27.09.11
14:32
+(8) можем за тебя написать
10 Леха Дум
 
27.09.11
14:33
Лучше "Замуж и рожать"
11 Леха Дум
 
27.09.11
14:35
+ (10) так в ТРТУ один препод ставил зачеты студенткам по ассемблеру :)
12 acsent
 
27.09.11
14:35
(10) У Вики целых 22, а вы рожать ))
13 DrShad
 
27.09.11
14:38
(12) так тут у всех 22 и что?
14 GenV
 
27.09.11
14:51
(7) Сделай там открытие формы с полем выбора документа реализации (или сразу выбор делай модально), далее (8).
15 Vika_22
 
27.09.11
15:12
(14) По вопросу запроса. Мне сделать сначала
16 Vika_22
 
27.09.11
15:13
+(15) Мне сделать сначала выборку всех остатков по складу, и только потом при обходе товаров, искать конкретный товар в выборке, полученной из запроса?
ИЛИ
Делать запрос по каждому отдельному товару?
17 FIXXXL
 
27.09.11
15:16
(16) передай в отбор запроса список товаров
18 rotting
 
27.09.11
15:17
(16) лучше по всем товарам один запрос
19 DrShad
 
27.09.11
15:18
(16) запрос с соединением двух таблиц (Номенклатура + Остатки) и выбрать только те у которых остаток <= 0
20 Vika_22
 
27.09.11
15:27
(16) передай в отбор запроса список товаров
Скажите, пожалуйста, не понимаю, как это сделать?
21 Vika_22
 
27.09.11
15:28
(18) А что тогда делать со счетом, что если в документе укажут номенклатуру с разными счетами учета?
22 5 Элемент
 
27.09.11
15:35
Там же можно в разрезе счетов получить остатки.
Сделай соединение по счету.
23 GenV
 
27.09.11
16:23
(15) Примерно так:

ВЫБРАТЬ
   РеализацияТоваровУслугТовары.СчетУчета,
   РеализацияТоваровУслугТовары.Номенклатура,
   СУММА(РеализацияТоваровУслугТовары.Количество) КАК Количество
ПОМЕСТИТЬ СписокНоменклатуры
ИЗ
   Документ.РеализацияТоваровУслуг.Товары КАК РеализацияТоваровУслугТовары
ГДЕ
   РеализацияТоваровУслугТовары.Ссылка = &СсылкаНаРеализацию

СГРУППИРОВАТЬ ПО
   РеализацияТоваровУслугТовары.СчетУчета,
   РеализацияТоваровУслугТовары.Номенклатура
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
   СписокНоменклатуры.СчетУчета КАК СчетУчета,
   СписокНоменклатуры.Номенклатура КАК Номенклатура,
   СписокНоменклатуры.Количество - ЕСТЬNULL(ХозрасчетныйОстатки.КоличествоОстаток, 0) КАК Количество
ИЗ
   СписокНоменклатуры КАК СписокНоменклатуры
       ЛЕВОЕ СОЕДИНЕНИЕ РегистрБухгалтерии.Хозрасчетный.Остатки(
               &ДатаОстатков,
               Счет В
                   (ВЫБРАТЬ
                       СписокНоменклатуры.СчетУчета
                   ИЗ
                       СписокНоменклатуры),
               &ОтборСубконто,
               Организация = &Организация И Субконто2 = &Склад
                   И Субконто1 В
                       (ВЫБРАТЬ
                           СписокНоменклатуры.Номенклатура
                       ИЗ
                           СписокНоменклатуры)) КАК ХозрасчетныйОстатки
       ПО СписокНоменклатуры.СчетУчета = ХозрасчетныйОстатки.Счет
           И СписокНоменклатуры.Номенклатура = ХозрасчетныйОстатки.Субконто1
ГДЕ
   ЕСТЬNULL(ХозрасчетныйОстатки.КоличествоОстаток, 0) < СписокНоменклатуры.Количество
;

////////////////////////////////////////////////////////////////////////////////
УНИЧТОЖИТЬ СписокНоменклатуры

ДатаОстатков - Момент времени документа реализации
СсылкаНаРеализацию - соотв. ссылка на реализацию
Организация - организация из релизации
ОтборСубконто - массив из видов субконто Склады, Номенклатура
Склад - Склад из реализации
ЗЫ Пример для счетов с количественным учетом по складам.
24 Vika_22
 
27.09.11
16:26
(23) Что-то запрос не простенький, а сложненький. Спасибо за помощь. Попытаюсь все это осознать.
25 GenV
 
27.09.11
16:30
(24) Вот простенкий (Массив счетов и номенклатуры получишь выгрузив колонки из реализации. Но придется проверять поиском по ТЗ остатки, т.к. у одной номенклатуры по идее могут быть разные счета ...):

ВЫБРАТЬ
   ХозрасчетныйОстатки.Счет КАК Счет,
   ХозрасчетныйОстатки.Субконто1 КАК Номенклатура,
   ХозрасчетныйОстатки.КоличествоОстаток КАК Количество
РегистрБухгалтерии.Хозрасчетный.Остатки(
               &ДатаОстатков,
               Счет В (&МассивСчетов),
               &ОтборСубконто,
               Организация = &Организация И Субконто2 = &Склад
                   И Субконто1 В (&МассивНоменклатуры)) КАК ХозрасчетныйОстатки
26 Vika_22
 
27.09.11
17:37
GenV Спасибо Вам большое. Я воспользовалась вторым запросом, потому что он мне понятен. Только вот не поняла про ОтборСубконто. В СП написано, что Отбор - это структура. Я не поняла что записывать в эту структуру.
27 GenV
 
27.09.11
17:45
(26) Ну, назови по другому (там про другой отбор) ) Это массив типа:
ОтборСубконто = Новый Массив;
ОтборСубконто.Добавить(ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.Номенклатура);
ОтборСубконто.Добавить(ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.Склады);

ЗЫ Только не забывай, что номенклатура может быть в ТЧ в нескольких строках ...
28 Vika_22
 
27.09.11
17:52
(27) Спасибо. Все поняла. Про номенклатуру помню)
Глупец, лишенный способности посмеяться над собой вместе с другими, не сможет долго выносить программирование. Фредерик Брукс-младший