Запрет проведения заказа покупателя если товара нет в наличии.

1. Kutnor 19.06.14 10:23 Сейчас в теме
Всем доброго дня!
Прошу подсказать как можно запретить проведение заказа покупателя если товара нет в наличии в свободном остатке(например товар зарезервирован)?
Сейчас приходится делать резерв и просматривать все строки, сделался ли на них резерв, а если строк более 300 то это очень напрягает, мы не размещаем товары в заказы поставщикам, продаем только со склада.
Хотелось бы если товара нет в свободном остатке, заказ не проводился и писалась бы ошибка, как это раньше делалось в 1с 7.7 когда проводишь реализацию.
Буду рад любым советам, может быть тема уже поднималась, но я не нашел, если есть такая то дайте ссылку.
p.s. хотелось бы все решить стандартным методом, но если нельзя можно и программно.
По теме из базы знаний
Вознаграждение за ответ
Показать полностью
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. PhoenixAOD 62 19.06.14 10:33 Сейчас в теме
(1) Kutnor, конфа какая? в КА помнится была галочка, что учитывать резерв при остатках или как то еще, вот с этой галочкой, заказ сделать было нельзя если товара нет свободного.
3. Kutnor 19.06.14 10:35 Сейчас в теме
(2) PhoenixAOD, конфу вверху же написал в описании: 1С:Предприятие 8.2 (8.2.17.169) "Управление торговлей", редакция 10.3 (10.3.14.3)
4. Kutnor 19.06.14 10:36 Сейчас в теме
(2) PhoenixAOD, эх найти бы еще эту галочку.
5. PhoenixAOD 62 19.06.14 10:45 Сейчас в теме
(4) Kutnor, точно сорри, а доп настройах пользователя стоит разрешения на превышение остатков по складу и организации?
6. Kutnor 19.06.14 12:07 Сейчас в теме
(5) PhoenixAOD, нет там галочка не стоит.
7. kgn2011 5 19.06.14 13:35 Сейчас в теме
(1) Kutnor, Сервис-пользователи-настройка дополнительных прав пользователя. Там смотрите.
8. Kutnor 19.06.14 13:52 Сейчас в теме
(7) kgn2011, ну так только что писал что там смотрел.
Галочка Разрешение на превышение остатков по складу и организации не стоит.
9. shuhard 19.06.14 14:29 Сейчас в теме
(1) в оперативном режиме и при отсутствии полных прав Заказ покупателя в типовой не проведётся, если ТМЦ нет в свободном остатке
10. x_under 13 19.06.14 15:01 Сейчас в теме
Все там проведется. Заказ это не отгрузка же.

Так из быстрых решений вот такие: описать функцию перед проведением, которая будет по строкам проверять заполненность колонки "Размещение". Если там склад, то все хорошо, если нет - скидываем отказ в истину и сообщаем пользователю. Код там простой будет.

Так же можно сделать вот такую штуку: запретить пользователям вводить строки в заказ через табличную часть. Оставить только подбор, в котором устанавливать вид подбора "По остаткам". Но конечно же вариант первый.
SGordon1; Kutnor; +2 Ответить
11. Kutnor 19.06.14 16:02 Сейчас в теме
(10) x_under, второй вариант отпадает так как мы товар вводим в основном через сканер, а что не по сканеру то через подбор.
Решили ввести автоматизацию и "на тебе" столько проблем. Раньше все делали через подбор.
Неужели нет путей проще, казалось бы элементарная вещь. А если ковырять код, то может сделать заказ покупателя также как и реализацию, чтобы при проведении выдавал ошибку.
x_under можешь твой первый совет написать что и куда вставлять, я не программист, с кодом у меня беда, делал много чего, но с помощь подсказок.
Сам я код точно не придумаю. Спасибо!
14. shuhard 20.06.14 11:06 Сейчас в теме
(10)
Все там проведется. Заказ это не отгрузка же.

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

Проведение документа "Заказ покупателя 00000000001 от 20.06.2014 11:05:10":
Свободного остатка МРА-РС-32 на складе База недостаточно.
Не хватает 98 шт; Остаток 2 шт; Требуется 100 шт
17. x_under 13 20.06.14 13:06 Сейчас в теме
(14) shuhard, ну так никто не говорил о том, что размещение заполнено. А руками его заполнять смысла нет. Так что заказ проводится при отсутствии остатков. Ваши замечания неконстурктивны для решения задачи.

(16) Kutnor, действительно, если используете сканер подбор отпадает. Тогда непонятно как вы сканируете товар которого нет? =)
Сделайте так:
- в настройках пользователей отключите авторазмещение (Т. о. заполняться будут только склад при наличии товара)
- Пусть пользователи после сканирования товара в заказ нажимают кнопку "Заполнить и провести". При этом система предложит зарезервировать товар. Пусть соглашаются. (Т. о. программа заполнит размещение - склад, если товар есть или оставит пустым, если его нет)
- Дальше в модуле объекта документа "Заказ покупателя" найдите процедуру "ПроверитьЗаполнениеТабличнойЧастиТовары" и добавьте туда вот такой код:
Процедура ПроверитьЗаполнениеТабличнойЧастиТовары(ТаблицаПоТоварам, СтруктураШапкиДокумента, Отказ, Заголовок)

	ИмяТабличнойЧасти = "Товары";

	// Укажем, что надо проверить:
	СтруктураОбязательныхПолей = 
	Новый Структура("Номенклатура, Количество, Сумма");

	УправлениеЗапасами.КорректировкаСтруктурыОбязательныхПолей(ЭтотОбъект, ИмяТабличнойЧасти, СтруктураШапкиДокумента.ВидСклада, СтруктураОбязательныхПолей);

	Если УчитыватьНДС Тогда
		СтруктураОбязательныхПолей.Вставить("СтавкаНДС");
	КонецЕсли;

	//////////////////////////////////////////////////////
        // ВОТ ТОТ САМЫЙ КОД ПРОВЕРКИ
        СтруктураОбязательныхПолей.Вставить("Размещение");
        //
	
	ЗаполнениеДокументов.ПроверитьЗаполнениеТабличнойЧасти(ЭтотОбъект, "Товары", СтруктураОбязательныхПолей, Отказ, Заголовок);

	// Здесь услуг быть не должно.
	УправлениеЗапасами.ПроверитьЧтоНетУслуг(ЭтотОбъект, "Товары", ТаблицаПоТоварам, Отказ, Заголовок);

	// Здесь наборов-пакетов быть не должно.
	УправлениеЗапасами.ПроверитьЧтоНетНаборов(ЭтотОбъект, "Товары", ТаблицаПоТоварам, Отказ, Заголовок);

	// Здесь не должно быть размещений по НТТ
	УправлениеЗапасами.ПроверитьЧтоСкладНеНТТ(ЭтотОбъект, "Товары", ТаблицаПоТоварам, Отказ, Заголовок);

КонецПроцедуры // ПроверитьЗаполнениеТабличнойЧастиТовары()
Показать

Т. о. заказ с пустым размещением просто не будет проводиться
Gravern; Kutnor; +2 Ответить
19. Kutnor 20.06.14 13:26 Сейчас в теме
(17) x_under, товар может быть зарезервирован, но не собран, т.к. оплаты еще нет. На склад придет покупатель из Москвы и возьмет этот зарезервированный товар, как узнать что он зарезервирован? Если бы в заказе покупателя при проведении писалось что данный товар зарезервирован, то проблем бы не было.
Ваш код попозже попробую, shuhard говорит что можно стандартным способом, пусть покажет как.
Все таки лишний раз ковырять тоже не хорошо.
p.s. 1)в настройках пользователя авторазмещение давно отключил.
2)пользователи уже после сканирования товара в заказ нажимают кнопку "Заполнить и провести", только это очень напрягает, потому что есть 2 минуса:
а) если заказ прошедшим числом то это поле неактивно
б) каждый раз если что то добавляем или убавляем нужно снова нажимать эту кнопку "Заполнить и провести"
23. Vakhmistrova 20.06.14 13:58 Сейчас в теме
(19) Kutnor, Если зарезервированный товар для клиента в свободном доступе, то проблема будет объяснить клиенту, что он этот товар купить не может, т. к. в реализацию товар отсутствующий в свободном остатке, при не заполоненном поле "Размещение" не попадет. Как вариант для прямых клиентов сканирование присоединить не к заказу, а к реализации.
27. x_under 13 20.06.14 16:21 Сейчас в теме
(19) Kutnor, поясните задачу. ВЫ и сами путаетесь и нас путаете. Вам необходимо, чтобы зарезервированный товар нельзя было продать, или вы хотите видеть, что он в резерве? Вы заполняете заказы сканируя в них товар? Как это? Зачем?
28. Kutnor 20.06.14 16:35 Сейчас в теме
(27) x_under, мне необходимо чтобы зарезервированный товар не проводился еще раз в заказе покупателя, чтобы когда кладовщики делают заказ покупателя им выбивала надпись как тут.
Да мы сканируем в заказы покупателя. Это не правильно разве? У нас есть сканер и есть ТСД с программой Cleverence
В этой программе нельзя начинать делать реализацию, только заказ, а потом реализацию на его основании. Функция называется отпуск товара.
Я уже сам запутался как нужно, раньше мы делали реализации и никакого учета вообще не вели. А теперь нужно вести учет.
29. Kutnor 20.06.14 16:44 Сейчас в теме
(27) x_under, Проблема еще в том что половина товаров у нас со штрихкодами, а половину нужно добивать в ручную, короче задачка та еще.
33. Allexe8.1 20.06.14 20:31 Сейчас в теме
(29) Kutnor, как вариант - можно в форму, функции СШКНоменклатура, вроде - это прямое сканирование в документ, и ОбработкаПодбора() - добавить проверку остатков
47. coolvic 13.08.14 15:27 Сейчас в теме
(17) x_under, у меня стоит такая же задача. Сделал как вы говорите, но 1С ведет себя странно. Если количество больше, чем на складе, то она ставит максимум доступного, ставит размещение Склад, а то чего не хватает добавляет второй строчкой с пустым размещением и размещяет заказ. Можно как-то сделать, чтобы насильно присваивался Склад и сообщал, что недостаточно товара, а не дробил строки?
48. x_under 13 13.08.14 16:06 Сейчас в теме
(47) coolvic, только доработкой. Иначе система дробит строки, что является стандартным поведением.
Можно сделать настройку, чтобы при добавлении строки в размещение падал склад из шапки документа и все
49. coolvic 13.08.14 17:54 Сейчас в теме
(48) x_under, а как это сделать? Меня бы это устроило, ведь он тогда ошибку бы выдавал.
50. coolvic 15.08.14 17:12 Сейчас в теме
(48) x_under, подскажите, пожалуйста как сделать такую настройку, чтобы при добавлении строки в размещение падал склад
38. Kutnor 23.06.14 16:21 Сейчас в теме
(14) shuhard, только что допер о чем ты писал, ты размещение указываешь в ручном режиме, то есть для каждого товара нужно клацать несколько раз и ставить насильно склад. Тогда такое сообщение вылазит, а у нас в каждом документе около 200 позиций и каждый делать в ручном режиме не вариант. Мы проводим размещение автоматически через кнопку подбор и заполнение и вот после этого мне не указывает что какое то поле не заполнено, все таки x_under был прав и нужно дописывать модуль.
39. x_under 13 24.06.14 08:51 Сейчас в теме
(38) Kutnor, ну а то =)
Есть еще один вариант: если у вас в заказе всегда один склад, то можно сделать обработку заполнения ТЧ, которая просто проставит склад из шапки в размещение, и тогда при проведении будет проверка остатка (база останется типовой), ну или можно сделать заполнение размещения просто при добавлении строки.
46. Kutnor 24.06.14 10:59 Сейчас в теме
(39) x_under, извини не могу ответить в сообщениях, стартмани не осталось))
Про обработку с самостоятельным заполнением поля размещение я подумаю. Напиши на всякий случай сюда: info@kutnor.ru чтобы у меня твоя почта была. В паблике писать не хорошо.
P.S.
твой код из 17 не подходит, я все вставил куда нужно, но документ все равно проводится, поле размещение пустое.
12. Bazh 19.06.14 17:39 Сейчас в теме
Походу надо кодить, писанины не много но надо подумать куда и за что зацепиться
13. Kutnor 20.06.14 09:34 Сейчас в теме
Может я что то не так делаю, может кто объяснит как правильно резервировать товар до оплаты покупателю, заказ покупателя работает как то хреново, почему если товара нет в наличии он проводится? Где логика? Может нужно где то отменить размещение заказа поставщику и тогда будет только резервирование. Хотя бы сделать так, чтобы при проведении писалось что этого товара нет, а сейчас и этого нет.
15. shuhard 20.06.14 11:07 Сейчас в теме
(13) купи книжку Богачевой и внимательно прочитай
УТ 10.3 с резервами работает без каких-либо проблем
16. Kutnor 20.06.14 11:35 Сейчас в теме
(15) shuhard, ну подсказал бы, мил человек!
Пойди купи, прочитай...
Книжку я и скачать могу, проблему нужно решить сейчас, а книжку я еще месяц читать буду.
Если знаешь подскажи, я для этого тему создал, чтобы подсказывали.
18. Vakhmistrova 20.06.14 13:22 Сейчас в теме
Если выше описанные галочки, не стоят, то проводиться может только при условии, что графа "Размещение" не заполнена. Автоматически заполнить графу и провести можно используя кнопку "Заполнить и провести". В параметрах авторезервирования установить галку "Автоматическое резервирование", Автоматическое размещение - галку убрать. В стратегии авторезервирования по заказам выбрать: "Сначала по складам потом в заказах поставщика".
20. Kutnor 20.06.14 13:36 Сейчас в теме
(18) Vakhmistrova, В стратегии авторезервирования по заказам выбрать: "Сначала по складам потом в заказах поставщика" я поставил.
Галочка Разрешение на превышение остатков по складу и организации не стоит.
У пользователя в настройках авторезервирования установлена галка "Автоматическое резервирование", Автоматическое размещение - галка не установлена.(по умолчанию)

Создаю заказ, пробиваю товар которого нету, жму заполнить и провести, графа "Размещение" естественно не заполнена. Документ проводится. Что не так?
21. TMV 11 20.06.14 13:49 Сейчас в теме
(20) Kutnor, в (17) вам дали исчерпывающий ответ. Даже необходимый код приведен.
Не умеете писать код, наймите программиста.
22. Kutnor 20.06.14 13:57 Сейчас в теме
(21) TMV, а в (14) написали что все решается стандартными средствами, я например думаю что можно все решить стандартными средствами, может где то галочка не стоит. Ну не может быть такая казалось бы элементарная вещь не быть в УТ 10.3
24. AlexShap 2 20.06.14 15:20 Сейчас в теме
А вы вообще работаете под полными правами? Под полными правами он вроде может проводится.
26. Kutnor 20.06.14 16:09 Сейчас в теме
(24) AlexShap, а какая разница? сейчас вот попробовал роль менеджер по закупкам, результат такой же.
Мне кто нибудь скажет, у кого нибудь в УТ 10.3 стандартной конфе это работает? Или нужно дописывать?
Товарищ shuhard утверждает что работает, только не говорит как, другие уверяют что нужно дописывать.
25. Kutnor 20.06.14 16:04 Сейчас в теме
да под полными правами.
40. МимохожийОднако 142 24.06.14 09:03 Сейчас в теме
(25) Kutnor, убери полные права для начала и выставь нужные. Тогда стандартные механизмы, о которых уже писали будут работать. ИМХО, не всё рассказал.
41. Kutnor 24.06.14 09:13 Сейчас в теме
(40) МимохожийОднако, я пробую все это на другом пользователе, где права стоят пользователя и менеджера по продажам.
42. МимохожийОднако 142 24.06.14 09:43 Сейчас в теме
(41) Kutnor, тогда я не понял про полные права в (25). Чтобы добраться до истины, запусти пошагово отладчик под этим пользователем и увидишь в каком месте проходишь мимо запрета.
43. Kutnor 24.06.14 10:04 Сейчас в теме
(42) МимохожийОднако, а ты почитай на пост ниже. 26 например. Уже все понятно, нужно писать код.
44. МимохожийОднако 142 24.06.14 10:24 Сейчас в теме
(43) Kutnor, я посты все прочитал. Не нервничай. Посмотри картинки. У тебя также настроено?
45. Kutnor 24.06.14 10:37 Сейчас в теме
(44) МимохожийОднако, я не нервничаю, я благодарен каждому кто тут тратит свое время на помощь, пусть даже не всегда полезную.
как уже писали выше весь ответ мне дали уже в 17, я это уже понял,стандарными средствами никак не заставить размещение проверять или ставить склад автоматом, код уже переписал, сейчас проверю.
Нет у меня не много не так, как на твоих скринах.
Параметры учета так стоят, в остальном есть расхождения, скрины прилагаю.
МимохожийОднако; +1 Ответить
30. Kutnor 20.06.14 16:52 Сейчас в теме
Да и все равно если даже просто делать заказ покупателя через подбор заказа, менеджер может не заметить что товар закончился (в резерве) и пробить его, а система никак ему не подскажет что он сделал глупость, должно же при проведении выходить хоть что то...
31. SGordon1 20.06.14 17:33 Сейчас в теме
Как менеджер заполняет поле размещение товара в заказах в Вашей компании?
34. Kutnor 23.06.14 09:39 Сейчас в теме
(31) SGordon1, по разному, и сканером и ТСД и подбором.
32. Allexe8.1 20.06.14 20:29 Сейчас в теме
В типовой УТ10 - контроль остатков в заказе производится, если:
1) Документ проводится оперативно - убираем условие в модуле документа
2) Только по тем строкам, где указано размещение (склад или заказ поставщику) - запрещаем проведение с незаполненным полем Размещение (уже говорили)
3) У пользователя не установлено дополнительное право , что-то вроде "Разрешить отрицательные остатки". Это оставляем, просто убираем у тех, кому "не положено"
35. Kutnor 23.06.14 10:15 Сейчас в теме
Уважаемые, зачем изобретать велосипед?

В самой конфигурации уже есть // Проверка остатков при оперативном проведении.
в Документе ЗаказПокупателя Модуль Объекта

Только как ее включить?
36. SGordon1 23.06.14 14:30 Сейчас в теме
Т.е. поле размещение указано, и товар на выбранных складах резервируется в минус?
37. Kutnor 23.06.14 14:46 Сейчас в теме
(36) SGordon1, размещение заполняем автоматически, строк в ТЧ очень много, бывает и 200 и больше, все их просмотреть заполнились ли они или нет очень сложно, иногда я сам даже листая пропускаю строку, нужно чтобы писалось где то что строка не заполнена. Сейчас если поле не заполнено все равно проводит документ и ничего не пишет. То есть как я понял из всего выше сказанного, нужно дописать конфу, стандартынм методом никак не настроить. По сути мне нужно 2 вещи:
1) убрать вообще размещение, у нас только резервирование
2) не проводить документ с пустым полем размещение.

p.s. Мне еще очень хочется услышать кто как работает.
У нас Оптовый склад, продаем как через интернет, так и на складе.
Допустим пришел заказ через интернет, менеджер его внес в заказ покупателя через подбор, зарезервировал и сделал на его основании счет покупателю, правильно? Если покупатель счет оплатил то уже на основании заказа делаем реализацию и отгружаем товар. А если покупатель просит внести изменения? у нас это очень часто бывает, в основном бывает нужно добавить, но иногда и убрать. Как быть? Переделывать заказ и счет? Или создавать документ коррекция заказа, но счет все равно придется переделывать. Не хочется переделывать 2 документа, так как бывает что очень много переделывать, остается удалить старый счет и сделать новый? тоже не вариант, будет большой разброс номеров в счетах. Раньше в 7.7 была такая хорошая вещь, непотвержденная заявка там вроде и резерв был и счет делали, 2 в одном.

А если заказ не через интернет, если покупатель приехал и отобрал товары, как ему считать? тут же реализацию делать, без всяких заказов покупателя? Или заказ покупателя все равно нужен?
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот