|
Обработка для создания пко рко | ☑ | ||
---|---|---|---|---|
0
ppkmlite
09.11.14
✎
10:42
|
Здравствуйте, вопрос такой. Делаю обработку которая бы создавала приходный и расходный кассовые ордера. На форме две кассы,при выборе касс выходит на форму остаток,если он отрицательный у организации 1,то создается приходный на организацию 1, соответственно расходный на организацию 2. Реквизиты должны проставляться те которые на форме выбраны(договор,контрагент).
Эти документы нужно выводить списком на форму. Может кто сталкивался, подскажите. Это запросом нужно выводить? Я это делаю на кнопке сформировать.Создаю новую команду, а вот какие процедуры нужны,затрудняюсь. |
|||
1
DGorgoN
09.11.14
✎
11:00
|
"Это запросом нужно выводить?" - как будет тебе удобно.
"а вот какие процедуры нужны,затрудняюсь." - грамотно поставленный вопрос это половина ответа. Думать за тебя тут имхо никто не будет. Хотя, при наличии фото.. ) |
|||
2
ppkmlite
10.11.14
✎
12:10
|
Подскажите, пожалуйста.
Я создала функцию, которая возвращает табличный документ, и мне теперь нужно, чтобы реквизиты документов-касса, организация проставлялись из выбранных на форме обработки. Процедура Кнопка1(Элемент) ТабДок = СоздаетНовыеДокументы(ТабДок); ТабДок.ТолькоПросмотр = Истина; КонецПроцедуры Функция СоздаетНовыеДокументы(ТабДок) Экспорт НовыйПКО = Документы.Приходныйкассовыйордер.СоздатьДокумент(); НовыйПКО.Дата = ТекущаяДата(); НовыйПКО.УстановитьНовыйНомер(); НовыйПКО.ОтражатьВУправленческомУчете = Истина; НовыйПКО.Оплачено=Истина; НовыйПКО.Касса=Касса1.---какой здесь параметр ставить???? НовыйПКО.Записать(РежимЗаписиДокумента.Проведение); Возврат ТабДок; КонецФункции Просто выходит ошибка, что не заполнена касса, организация. Подскажите. |
|||
3
Maximysis
10.11.14
✎
12:44
|
Твоя функция возвращает не табличный документ.
Какой тип у твоей Касса1? Нужно ссылка. |
|||
4
GreatOne
10.11.14
✎
12:57
|
помню я тоже не понимал, чем функция от процедуры отличается. И фраза "функция возвращает значение, процедура нет" меня не вразумляла.
Откройте слева в конфигураторе дерево метаданных и посмотрите, какой тип имеет реквизит "Касса" документа "Приходный кассовый ордер". |
|||
5
ppkmlite
10.11.14
✎
13:49
|
Я недавно в 1с, не судите строго.сделала
НовыйПКО.Касса=Касса1.Ссылка Не заполнено значение реквизита "Касса"! А по поводу вывода табличного документ Мне нужно, чтобы функция возвращала табличный документ, а в нем приходный и расходный ордера списком. Я делаю Возврат ТабДок. Подскажите, что я делаю не так? |
|||
6
vicof
10.11.14
✎
13:57
|
(0) Отличная обработка, только она не создает пко и рко
|
|||
7
Maximysis
10.11.14
✎
14:25
|
Без фотки в профиле, гиблое дело.
|
|||
8
tank68
10.11.14
✎
16:33
|
НовыйПКО.Касса=Справочники.Кассы.НайтиПоКодУ("твой код")
вродебы как то так должно быть |
|||
9
AlexTim03
10.11.14
✎
16:35
|
(7) +1
|
|||
10
tank68
10.11.14
✎
16:35
|
Или же в обработке у тебя должен быть реквизит ссылающийся на кассу
|
|||
11
tank68
10.11.14
✎
16:36
|
(7) А так можно предполагать долго скрин нужен
|
|||
12
ppkmlite
10.11.14
✎
20:24
|
Вообщем получилось как то так.
Процедура Касса1ПриИзменении(Элемент) СуммаДок = ОстатокПоКассе(); ост = СуммаДок; КонецПроцедуры Процедура СоздаетНовыеДокументы() Экспорт Если суммадок < 0 Тогда НовыйПКО = Документы.Приходныйкассовыйордер.СоздатьДокумент(); НовыйПКО.Дата = ТекущаяДата(); НовыйПКО.ОтражатьВУправленческомУчете = Истина; НовыйПКО.Оплачено=Истина; НовыйПКО.Организация = ОрганизацияОт.Ссылка; НОвыйПКО.Контрагент = КонтрагентОт.Ссылка; НовыйПКО.Касса=Касса1.Ссылка; НовыйПКО.СуммаДокумента = суммадок; Новаяпеременная = НовыйПКО.РасшифровкаПлатежа.Добавить(); новаяпеременная.Сделка(); //Для НовыйПКО.Записать(); Новаястрока = Многодокументов.Добавить(); Новаястрока.Документ = НовыйПКО; КонецЕсли; Выходит теперь ошибка, что операции сравнения на больше меньше только для значений совпадающих примитивных типов. То есть мне нужно узнать отрицательный остаток или нет, если да, то создать пко. Мне нужно, если я правильно понимаю, вернуть число(остаток) и его сравнить??Помогите,пожалуйста |
|||
13
ppkmlite
10.11.14
✎
20:36
|
остаток по кассе-функция
Функция ОстатокПоКассе() Экспорт Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | ДенежныеСредстваОстатки.СуммаОстаток, | ДенежныеСредстваОстатки.БанковскийСчетКасса, | ДенежныеСредстваОстатки.Организация |ИЗ | РегистрНакопления.ДенежныеСредства.Остатки(&Период, ) КАК ДенежныеСредстваОстатки |ГДЕ | ДенежныеСредстваОстатки.БанковскийСчетКасса = &БанковскийСчетКасса |И ДенежныеСредстваОстатки.Организация = &Организация"; Запрос.УстановитьПараметр("Период", Период); Запрос.УстановитьПараметр("БанковскийСчетКасса", Касса1); Запрос.УстановитьПараметр("Организация",ОрганизацияОт); РезультатЗапроса = Запрос.Выполнить(); ост = 0; ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать(); Если ВыборкаДетальныеЗаписи.Следующий() Тогда ост = ВыборкаДетальныеЗаписи.СуммаОстаток; КонецЕсли; //}}КОНСТРУКТОР_ЗАПРОСА_С_ОБРАБОТКОЙ_РЕЗУЛЬТАТА Возврат ост КонецФункции |
|||
14
ppkmlite
11.11.14
✎
14:53
|
Я прошла отладчиком. У меня теперь возникает вопрос, каким методом(да вообще каким способом) вывести документы на форму, так как они у меня создаются(если я захожу в список документов из меню-документы-касса...), а на форму не выводит
Вот функция Процедура СоздаетНовыеДокументы(СуммапоКассе1,СуммаПоКассе2) Экспорт Если СуммапоКассе2 < 0 Тогда Если СуммапоКассе1 > 0 Тогда НовыйПКО = Документы.Приходныйкассовыйордер.СоздатьДокумент(); НовыйПКО.Дата = ТекущаяДата(); НовыйПКО.ОтражатьВУправленческомУчете = Истина; НовыйПКО.Оплачено=Истина; НовыйПКО.Организация = ОрганизацияКому.Ссылка; НовыйПКО.ДоговорКонтрагента = Договор2; НОвыйПКО.Контрагент = КонтрагентКому.Ссылка; НовыйПКО.Касса=Касса3; НовыйПКО.СуммаДокумента = СуммаПоКассе2*(-1); НОВАЯПЕРЕМЕННАЯ = НОВЫЙПКО.РасшифровкаПлатежа.Добавить(); новаяПеременная.ДоговорКонтрагента=Договор2; //новаяПеременная.Сделка(); //новаяПеременная.КурсВзаиморасчетов(); новаяПеременная.СуммаПлатежа=СуммаПоКассе2; //новаяПеременная.КратностьВзаиморасчетов(); //новаяПеременная.СуммаВзаиморасчетов(); новаяПеременная.СтавкаНДС = 0; новаяПеременная.СуммаНДС = 0; //новаяПеременная.СтатьяДвиженияДенежныхСредств = "ОплатаПокупателя"; //новаяПеременная.ДокументПланированияПлатежа(); //новаяПеременная.Проект(); //новаяПеременная.КурсВзаиморасчетовПлан(); //новаяПеременная.СуммаПлатежаПлан(); //новаяПеременная.ДокументРасчетовСКонтрагентом(); НовыйПКО.Записать(); НовыйРКО = Документы.РасходныйКассовыйОрдер.СоздатьДокумент(); НовыйРКО.Дата = ТекущаяДата(); НовыйРКО.ОтражатьВУправленческомУчете = Истина; НовыйРКО.Оплачено=Истина; НовыйРКО.Организация = ОрганизацияОт.Ссылка; НОвыйРКО.Контрагент = КонтрагентОт.Ссылка; НовыйРКО.Касса=Касса1; НовыйРКО.СуммаДокумента = СуммаПоКассе2*(-1); нОВАЯпЕРЕМЕННАЯ1 = НОВЫЙРКО.РасшифровкаПлатежа.Добавить(); новаяПеременная1.ДоговорКонтрагента = Договор1; //новаяПеременная1.Сделка(); //новаяПеременная1.КурсВзаиморасчетов(); //новаяПеременная1.СуммаПлатежа(); //новаяПеременная1.КратностьВзаиморасчетов(); //новаяПеременная1.СуммаВзаиморасчетов(); //новаяПеременная1.СтавкаНДС(); //новаяПеременная1.СуммаНДС(); //новаяПеременная1.СтатьяДвиженияДенежныхСредств(); // новаяПеременная1.ДокументПланированияПлатежа(); // новаяПеременная1.Проект(); // новаяПеременная1.КурсВзаиморасчетовПлан(); // новаяПеременная1.СуммаПлатежаПлан(); // новаяПеременная1.ДокументРасчетовСКонтрагентом(); НовыйРКО.Записать(); Новаястрока = Многодокументов.Добавить(); Новаястрока.Документ = НовыйПКО; Новаястрока.Документ = НовыйРКО; Вот здесь надо документ выводить??!! КонецЕсли; КонецЕсли; КонецПроцедуры Сама кнопка Процедура Кнопка1(Элемент) СоздаетНовыеДокументы(СуммаПоКассе1,СуммапоКассе2); КонецПроцедуры |
|||
15
GreatOne
11.11.14
✎
15:17
|
Новаястрока.Документ = НовыйПКО.Ссылка;
|
|||
16
GreatOne
11.11.14
✎
15:18
|
Это если предполагать, что "Многодокументов" - табличная часть, в которой есть колонка с типом "документссылка.приходныйкассовыйордер"
|
|||
17
ppkmlite
11.11.14
✎
16:32
|
Спасибо, сделала. Спасибо за помощь, и еще очень глупый вопрос
Документы выводятся,ура!! но не проводятся, они напроведенные! Теперь нужно заполнить реквизиты, некоторые из них я беру на форме НОвыйПКО.Контрагент = КонтрагентКому.Ссылка; НовыйПКО.Касса=Касса3; А есть реквизит, которого на форме нет, мне нужно его заполнить,взять из списка(чтобы он проставлялся в документе автомаически)-счет организациии. НовыйПКО.СчетОрганизации = как мне обратиться к конкретной позиции, к конкретному счету?!(типз значения СправочникСсылка.БанковскиеСчета) |
|||
18
vicof
11.11.14
✎
16:46
|
(17) КонтрагентКому.ОсновнойБанковскийСчет
|
|||
19
vicof
11.11.14
✎
16:46
|
Организация.ОсновнойБанковскийСчет
|
|||
20
vicof
11.11.14
✎
16:47
|
Ну или костыли в виде НайтиПоКоду()
|
|||
21
GreatOne
11.11.14
✎
16:47
|
(20) как раз снял и то и то)
http://joxi.ru/zANkyydhBXKPr9.jpg |
|||
22
ppkmlite
11.11.14
✎
16:48
|
НовыйПКО.СчетОрганизации = СправочникСсылка.БанковскиеСчета.НайтиПоНаименованию(РасчетныйАстТоргРСХБ);
Так неправильно? |
|||
23
vicof
11.11.14
✎
16:52
|
(22) Наименование - это строка
|
|||
24
vicof
11.11.14
✎
17:01
|
(22) Ну или предопределенный, если у тебя такие есть
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |