Имя: Пароль:
1C
1C 7.7
v7: Как выбрать Склад програмно в Реализации ?
,
0 Mepcuk
 
20.01.19
12:44
Я так понимаю в реализации надо посмотреть куда был направлен товар при поступлении и при реализации выбрать склад именно тот куда приписан Товар.

Подскажите как? Это ведь не в справоснике искать ??

          //--------++++++++++++++++++++++++++++++++-
// ВВод номера КОДА товара
        
        АртТовара = "";
        Item_found   = 0;
        Количество = 0;
        
        Пока Количество = 0 Цикл
        
        Если ВвестиСтроку(АртТовара, "Введите Артикуль Товара", 15, 0, 0) = 1 тогда
            
            Товары =СоздатьОбъект("Справочник.Номенклатура");
            Товары .ВыбратьЭлементы();
            
            БухИт=СоздатьОбъект("БухгалтерскиеИтоги");
            БухИт.ОсновныеИтоги();
            Количество = 0;
            
            Пока Товары .ПолучитьЭлемент()=1 Цикл
                Если Товары .ТекущийЭлемент().Код = АртТовара Тогда
                    Item_found = 1;
                    //In_stock_quantity = КоличествоНоменклатуры();
                    
Склад = ?????
                            Количество = Количество+БухИт.СКД(СчетПоКоду("21.10"),"К",, Товары .ТекущийЭлемент());
                            Количество = Количество+БухИт.СКД(СчетПоКоду("21.20"),"К",, Товары .ТекущийЭлемент());
                            Количество = Количество+БухИт.СКД(СчетПоКоду("21.30"),"К",, Товары .ТекущийЭлемент());
                            Количество = Количество+БухИт.СКД(СчетПоКоду("21.35"),"К",, Товары .ТекущийЭлемент());
                            Количество = Количество+БухИт.СКД(СчетПоКоду("21.40"),"К",, Товары .ТекущийЭлемент());    
                КонецЕсли;
                    
            КонецЦикла;
            
                Если Item_found = 1 Тогда
                    Если Количество < 1 Тогда
                        Предупреждение("Товара "+ АртТовара +  " нет в наличии - " +Количество);
                    КонецЕсли;
                    
                Иначе
                    Предупреждение("Элемент с заданным наименованием не найден");
                КонецЕсли;
        
        конецесли;   // End of input data item CODE ID
        
        КонецЦикла;   ////Пока Item_found=0 И Количество = 0 Цикл

// ------- Конец поиска товара по коду
//------------------------------------,
Склад

ДокРеализации.Склад =  ;
1 Aleksey
 
20.01.19
13:08
а какая связь между складом поступлением и складом реализацией?

Товар пришел на основной склад, потом переместили на склад №1 оттуда продали клиенту, он отказался его брать и вернул на склад "претензий" с этого склада товар переместили на склад "уценки". И уже со склада уценки повторно пытаются продать товар.

Ну и какой склад должен быть в реализации?
2 HawkEye
 
20.01.19
13:11
(0) для поиска по коду, у справочника есть метод НайтиПоКоду

задача то какая? спросить у пользователя товар и списать его с любого склада где он есть?
3 Aleksey
 
20.01.19
13:11
Тем более счет 21 - полуфабрикаты собственного производства. Они по определению не могут поступить к нам документам поступления (иначе это был бы материал к примеру). И продать документом реализации мы тоже их не можем (это же полуфабрикаты, а не товар). Максимум передать на сторону для дальнейшей обработки
4 HawkEye
 
20.01.19
13:13
(3) у него не русский план счетов, у них 21, что-то типа сборного наших 10, 20, 41, 43 и т.д.
5 Aleksey
 
20.01.19
13:26
да все равно
2110 Сырье и материалы
2120 Незавершенное производство
2130 Готовая продукция и товары для продажи
2140 Незаконченные заказы

Т.е. странно тянуть незавршёнку в реализацию. Т.е. по идеи там только 21.30 должен быть.
Ну а там хз какую задачу он пытается решить
6 Mepcuk
 
20.01.19
13:56
(2) Именно По банку Paypal приходит платеж, В нем есть название товара но оно на английском, а приход на латышком языке, поэтому я спрашиваю у пользователя ID товара и чтобы понять что списать. Нужно списать с любого склада где он есть.
Ну по умочанию у меня 2 склада (Бухгалтерия и склад), но я весь приход забил на склад Бухгалтерию, по примеру бывшего бухгалтера.

Задача списать оттуда откуда он есть, по факту склад(Бухгалтерия).
7 Mepcuk
 
20.01.19
13:57
(4) План счетов Латвийский
8 hhhh
 
20.01.19
13:58
(6) ну тоже спроси у пользователя? Чего париться?
9 Mepcuk
 
20.01.19
13:58
(5) Идею понял, код где-то подсмотрел не вникнув в суть, Незавершенку коментирую.

Спасибо за меткий взор
10 Mepcuk
 
20.01.19
14:00
(8) Нужно автоматически, иначе я только и буду выбирать Склад.
Плюс, а вдруг пользователь ошибся и на складе нет товара
11 Mepcuk
 
20.01.19
14:01
(1) Наверное последний склад на котором был товар, Правильно ?
12 Aleksey
 
20.01.19
14:07
(10) Лучше спросить. Объясни мне если ты списываешь с любого склада, т.е. по сути склады виртуальные, а в реальности это один склад и один ответственный, то зачем делить по складам? Чтобы себе усложнить учет?

Второй вариант

К примеру у тебя на складе бухгалтера 8 шт, на складе склад 5 штук. Нужно списать 4 штуки. Ты смотришь на складе бухгалтера хватает - списываем. Следующее списание - нужно списать 6 штук. На складе бухгалтера товара недостаточно (4 штуки), на втором складе тоже мало (5) штук - твои действия


Третий вариант
Тебе нужно списать один товар со склада бухгалтерии (так как там товар лежит), второй склад со склада склад, так как он там лежит. Склад у тебя в шапки. Твои действия
13 Aleksey
 
20.01.19
14:08
ИМХО правильнее всего или убрать склады или списывать с одного склада и путь пользователь сам думает что делать в случае недостачи, перемещать с другого или оприходовать
14 Aleksey
 
20.01.19
14:09
(12)
* Третий вариант
Тебе нужно списать один товар со склада бухгалтерии (так как там товар лежит), второй ТОВАР со склада склад, так как он там лежит. Склад у тебя в шапки. Твои действия
15 hhhh
 
20.01.19
14:11
(10) а если вооьще нет этого товара?  Или товара на двух складах лежит? Все равно ведь спрашивать у пользователя.
16 HawkEye
 
20.01.19
15:17
(10) надо делать через бухгалтерскиеИтоги.
спросил код товара, затем НайтиПоКоду() в справочнике Номенклатура - получил товар (только почему бы сразу товар не спросить у пользователя?)
дальше:
БухИтоги с двумя ИспользоватьСубконто()
в первом указываешь товар который нашел, второй - разворачиваешь по складу.
затем:
ВыполнитьЗапрос - по нужным счетам (но сначала проверить какая у них аналитика, нужна Номенклатура и Склад)
после:
цикл по второму субконто, в твоем случае - склады, и списываешь нужное количество..
17 Aleksey
 
20.01.19
15:38
а потом выясниться что товар комиссионный и числиться на забалансе
18 HawkEye
 
20.01.19
15:41
(17) во первых, 21 - не забалансовый, во вторых как задача автором озвучена такое и решение...
19 Aleksey
 
20.01.19
16:09
(18) Читай внимательно, автор понятие не имеет где лежит товар. Просто нашел код в интернете и тупо его скопипастил

"код где-то подсмотрел не вникнув в суть" (9)

Так что что на самом деле там твориться никто не знает
20 HawkEye
 
20.01.19
16:21
(19) откуда у тебя эта привычка, советовать другим читать внимательнее? по себе что-ли судишь? так в 40 лет пора знать, что не стоит других судить по себе...
21 Aleksey
 
20.01.19
16:37
(20) так задача не озвучена. Есть некий код найденный в интернете, который не решает задачу (если бы решал бы, то темы бы небыло). Причем задача даже не озвучено. Так что я предположил что в рамках неозвученной задачи может быть что угодно, в том числе комиссия и забаланс. Но тут появился ты и нравоучитальный тоном начал мне что то доказывать. Причем ты даже где то увидел сформулированную задачу, которой нет. Ты же понимаешь что решения озвученное автором может быть ошибочное и без ясной постановки задачи трудно что то обсуждать. Так что твой переход на возраст мне непонятен
22 VladZ
 
20.01.19
17:17
(0) Что за "поток сознания"? Этот код выбросить! Пригласить специалиста, пусть он напишет хороший, красивый код.
23 Mikeware
 
20.01.19
17:44
(22) он сам хочет стать специалистом. Что похвально. Но если вместо чтения документации копипастить чужой код и задавать вопросы на форуме - вряд ли достижимо.
24 Гад
 
20.01.19
18:02
Вы еще за севастополь ответите
25 Mepcuk
 
20.01.19
22:30
(16) только почему бы сразу товар не спросить у пользователя?
Так как в платежке от Paypal название товара на английском (забито много Keywords) и при переводе на Латышский получиться чехарда. Пользователю угадать наименование из списка в 10 000 наименований нереально. По коду проще.

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

Но спасибо огромное
26 Mepcuk
 
20.01.19
22:33
(12) Алексей Вы правы, но у меня нет 10 складов, коммиссионок и так далее.
1 склад и все. (Правда в справочнике МестаХранения 2)

Я тут не Navision Microsoft переписываю, а легкую утилитку
27 Mepcuk
 
20.01.19
22:34
(19) код взят из Формы Реализации, там и смотрел и скопировал.

Интернет тут не причем
28 Mepcuk
 
20.01.19
22:35
(22) Ваш совет очень важен.

Искренний поклон за помощь.
29 Mepcuk
 
20.01.19
22:36
(23) Специалистом в 1с не планировал, просто хочу облегчить жизнь - не вводить руками реализацию товара, если она есть выписка по банку Paypal.
30 Aleksey
 
20.01.19
22:51
(26) а если 1 склад то зачем выбирать?

ДокРеализации.Склад =  Справочники.Склады.НайтиПоКоду(КодСклада);

Да и проверка лишняя. Все равно при проведении все проверит
31 Mepcuk
 
20.01.19
22:54
(30) я сделал так

ДокРеализации.Сч1           = СчетПоКоду("21.30",ПланыСчетов.Основной);

И все заработало.
По сути списал с Готовой продукции.
Склад в Дополнительную аналитику выбрать так и не удалось, но технически реализация выглядит как надо.
Надеюсь ДопАналитика ни на что не влияет
Выдавать глобальные идеи — это удовольствие; искать сволочные маленькие ошибки — вот настоящая работа. Фредерик Брукс-младший