Имя: Пароль:
1C
1С v8
Два действия одной кнопкой
, , ,
0 Pavel55555
 
19.06.17
14:16
Доброго дня!
Платформа 8.3 Толстый клиент. УТ 10.3
Данные:

ДокументОбъект.РеализацияТоваровУслуг

Необходимо создать процедуру где последовательно обрабатывается:
1. Провести документ
2. Ввести на основании "ПриходныйКассовыйОрдер"

Кнопка есть, Провести документ есть.

Не могу сообразить код, как создать документ "ПриходныйКассовыйОрдер" на основании этого
1 lubitelxml
 
19.06.17
14:19
Есть метод заполнить (сработает процедура ОбработкаЗаполнения у объекта, где в параметре основание будет ссылка на твою реализацию
2 Лефмихалыч
 
19.06.17
14:19
ДокументОбъект = Документ.ПриходныйКассовыйОрдер.СоздатьДокумент();
ДокументОбъект.Заполнить(СсылкаНаРеализацию);
ДокументОбъект.Записать(РежимЗаписиДокумента.проведение);
3 Повелитель
 
19.06.17
14:21
(0) Приходник и так в 2 клика в типовой заводиться.

На панели "Ввести на основании" - ПКО - Провести.

Ваши пользователи разленились походу вконец.
4 Pavel55555
 
19.06.17
14:23
На форме то я вывел кнопку
"ПриходныйКассовыйОрдер" на основании этого

Но она отделена, нужно одной кнопкой два действия

(2) сейчас попробую
5 Pavel55555
 
19.06.17
14:24
(3) суть не в этом, просто продавцы иногда забывают делать приходник после реализации.
6 Лефмихалыч
 
19.06.17
14:27
надо колено простреливать за это
7 Pavel55555
 
19.06.17
14:27
(6) Верно
8 Лефмихалыч
 
19.06.17
14:27
голову - нельзя, от этого еще забывчивей станут. А колено - самый раз.
9 Михаил Козлов
 
19.06.17
14:27
(5) А деньги они у клиента при этом забирают?
10 mistеr
 
19.06.17
14:28
(5) Конфу для розницы не предлагать?
11 Pavel55555
 
19.06.17
14:30
(2) Шо та Значение не является значением объектного типа (ПриходныйКассовыйОрдер)
12 youalex
 
19.06.17
14:31
(11) ты
13 Pavel55555
 
19.06.17
14:34
(9) Забирают.
Либо как то создать условие, наподобие:
Не печатать чек пока нет Приходного либо Оплата картой
14 Лефмихалыч
 
19.06.17
14:50
(11) за подобные вопросы на этом форуме хлещут кандлябром рекомендуют пригласить специалиста
15 Лефмихалыч
 
19.06.17
14:51
(13) да просто разницу между суммой в кассе и суммой по реализациям надо из зарплаты вычитать у них
16 Irbis
 
19.06.17
14:56
(0) А что только два действия на одну кнопку? У правельных пацанчегов давно в программе одна кнопка: "Сделать всё запипись"
17 Pavel55555
 
19.06.17
15:00
(15) Так и бывает.
У продавцов Права обрезаны в конец.
Печать чека только после Проводки, помечать на удаление, перепроводка, редактирование, изменение и прочие дела типа как изменить "Номенклатуру" - Нарушение прав!
Недостача идет из ЗП.

Почему-то:
Документ = Документы.ПриходныйКассовыйОрдер.СоздатьДокумент();
Не хочет работать, не реагирует, как будто пустая кнопка.
18 arishkaKlimova
 
19.06.17
15:03
(17) Дак надо записать потом документ.
Документ.Записать();
19 Pavel55555
 
19.06.17
15:06
(16) Так потом 3 действия будет, печать чека.
20 arishkaKlimova
 
19.06.17
15:10
(19) Вообще, это не очень правильно при записи одного документа создавать и проводить другой
21 Pavel55555
 
19.06.17
15:18
(20) Последовательность
1. Проведение Реализации;
2. На основании Реализации создать новый и открыть Приходный не записывая.
Как то так.

Допустим далее можно сделать:
кассир нажимает провести Приходный и выходит чек реализации.
22 Лефмихалыч
 
19.06.17
15:19
(17) так ить прав же нет - сам сказал.
Это надо делать в привилегированном режиме

УстановитьПривилегированныйРежим(Истина)
23 Pavel55555
 
19.06.17
15:24
(22) Я под Админом, Полные права
24 Лефмихалыч
 
19.06.17
15:25
(23) под программистом надо
25 Pavel55555
 
19.06.17
15:31
(24) И под ним тоже "Пытаюсь" с книжками.
26 Лефмихалыч
 
19.06.17
15:32
(25) да блин! посмотри уже в дерево метаанных, как это документ правильно называется
27 Pavel55555
 
19.06.17
15:59
(26) Ура всё родилось:
Процедура ПровестиДокумент()
    
    ЗаписатьВФорме(РежимЗАписиДокумента.Проведение);
    
    Документ = Документы.ПриходныйКассовыйОрдер.СоздатьДокумент();
    Документ.Дата = ТекущаяДата();
    Документ.Заполнить(ЭтотОбъект.Ссылка);
    Документ.Записать();
    Документ.ПолучитьФорму().Открыть();

КонецПроцедуры

Возник дополнительный вопрос, как сделать кнопку Проведения не активной! после того как Реализацию провели?
Дабы избавится от создания лишних Приходников.
28 arishkaKlimova
 
19.06.17
16:01
(27) Сначала нужна проверка, создан или нет на основании этого документа приходник. А ещё перед созданием приходника нужно проверять, провелся ли твой документ.

Кнопка проведения доступность равно ложь
29 Лефмихалыч
 
19.06.17
16:12
(27) галку "автозаполнение" у панели выключи и заполни сам такими командами, которые нужны
30 Лефмихалыч
 
19.06.17
16:16
А вообще, удали весь свой код.
И вместо него добавь подписку "ПриЗаписи", в которой проверяй режим записи и вот это (28).

Сейчас твои эти убогие костыли любой дурак обойти может - запишут документ, закроют форму, и проведут документ правой кнопкой из журнала документов.
31 Pavel55555
 
19.06.17
16:20
(28) А если так:
Если ЭтаФорма.ДокументОбъект.Проведен = Истина Тогда
        ЭтаФорма.ЭлементыФормы.ДействияФормы.Кнопки.Провести.Доступность = Ложь;
    КонецЕсли;

(30) и проведут документ правой кнопкой из журнала документов.
Нет у продавцов этой кнопки в журнала документов.
32 Лефмихалыч
 
19.06.17
16:22
(31) продолжай копрокодить
33 Pavel55555
 
19.06.17
17:09
Всем спасибо вопрос закрыт.
Основная теорема систематики: Новые системы плодят новые проблемы.