|
Заполнить реквизит документа Реализации | ☑ | ||
---|---|---|---|---|
0
Яна93
28.11.13
✎
10:35
|
Всем привет. Помогите, пожалуйста с запросом.. В общем необходимо проставить персонального менеджера в реквизит документа который автоматически формируется при помощи обработки. Поле реквизита документа я назвала Ю_Менеджер. Аналогичное поле с заполненной фамилией менеджера добавлено и в справочник Контрагенты..хотелось бы, что бы он при формировании нового документа еще и подставлял фамилию менеджера который указан в этом справочнике Контрагенты.. Вот часть кода данной обработки:
Процедура СформироватьДокументы(Знач ИмяДокумента, Знач БазаДляФормирования) Перем Запрос; Перем ПакетДанных; Перем ВыборкаШапкиДокументаКонтрагенты, ВыборкаШапкиДокументаДоговорыКонтрагентов, ВыборкаТоваров, ВыборкаУдаляемыхДокументов, ВыборкаУдаляемыхСчетФактур; Перем Документ; Перем СчетФактура; Состояние("Формирование документов вида: " +Метаданные.Документы[ИмяДокумента].Синоним); Запрос =Новый Запрос; Запрос.Текст ="ВЫБРАТЬ | БазаДляФормированияДокументов.Контрагент, | БазаДляФормированияДокументов.ДоговорКонтрагента, | БазаДляФормированияДокументов.ГрузополучательКонтрагент, | БазаДляФормированияДокументов.Склад, | БазаДляФормированияДокументов.Принципал, | БазаДляФормированияДокументов.СтавкаНДС, | БазаДляФормированияДокументов.ДоговорПринципала, | БазаДляФормированияДокументов.Номенклатура, | БазаДляФормированияДокументов.Количество, | БазаДляФормированияДокументов.СуммаСУчетомСкидки |ПОМЕСТИТЬ БазаДляФормированияДокументов |ИЗ | &БазаДляФормированияДокументов КАК БазаДляФормированияДокументов |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | Документы.Ссылка КАК Документ, | СчетФактураВыданный.Ссылка КАК СчетФактура |ПОМЕСТИТЬ УдаляемыеДокументы |ИЗ | &ИмяТаблициВидаФормируемогоДокумента КАК Документы | ЛЕВОЕ СОЕДИНЕНИЕ Документ.СчетФактураВыданный КАК СчетФактураВыданный | ПО (СчетФактураВыданный.ДокументОснование = Документы.Ссылка) |ГДЕ | Документы.Дата = НАЧАЛОПЕРИОДА(&КонецПериода, ДЕНЬ) | И Документы.ДатаНН = НАЧАЛОПЕРИОДА(&НачалоПериода, ДЕНЬ) | И Документы.ДатаКН = НАЧАЛОПЕРИОДА(&КонецПериода, ДЕНЬ) | И Документы.Комментарий ПОДОБНО ""Сформирован обработкой формирования документов"" | И Документы.Контрагент В | (ВЫБРАТЬ | БазаДляФормированияДокументов.Контрагент | ИЗ | БазаДляФормированияДокументов) | И Документы.ДоговорКонтрагента В | (ВЫБРАТЬ | БазаДляФормированияДокументов.ДоговорКонтрагента | ИЗ | БазаДляФормированияДокументов) | И Документы.Номер ПОДОБНО &ПрефиксСчетФактуры + ""%"" |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | МАКСИМУМ(НАЧАЛОПЕРИОДА(&КонецПериода, ДЕНЬ)) КАК Дата, | МАКСИМУМ(ЗНАЧЕНИЕ(Перечисление.ВидыОперацийРеализацияТоваров.ПродажаКомиссия)) КАК ВидОперации, | МАКСИМУМ(НАЧАЛОПЕРИОДА(&НачалоПериода, ДЕНЬ)) КАК ДатаНН, | МАКСИМУМ(КОНЕЦПЕРИОДА(&КонецПериода, ДЕНЬ)) КАК ДатаКН, | МАКСИМУМ(&Организация) КАК Организация, | МАКСИМУМ(ИСТИНА) КАК ОтражатьВНалоговомУчете, | МАКСИМУМ(&БухСчет_6204) КАК СчетУчетаРасчетовСКонтрагентом, | МАКСИМУМ(ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.РасчетыПоАвансамПолученным)) КАК СчетУчетаРасчетовПоАвансам, | ВЫРАЗИТЬ(БазаДляФормированияДокументов.Контрагент КАК Справочник.Контрагенты) КАК Контрагент, | ВЫРАЗИТЬ(БазаДляФормированияДокументов.ДоговорКонтрагента КАК Справочник.ДоговорыКонтрагентов) КАК ДоговорКонтрагента, | БазаДляФормированияДокументов.ГрузополучательКонтрагент КАК Грузополучатель, | МАКСИМУМ(&Грузоотправитель) КАК Грузоотправитель, | МАКСИМУМ(&Ответственный) КАК Ответственный, | ВЫРАЗИТЬ(БазаДляФормированияДокументов.ДоговорКонтрагента КАК Справочник.ДоговорыКонтрагентов).ВалютаВзаиморасчетов КАК ВалютаДокумента, | МАКСИМУМ(ИСТИНА) КАК УчитыватьНДС, | МАКСИМУМ(ИСТИНА) КАК СуммаВключаетНДС, | БазаДляФормированияДокументов.Склад, | БазаДляФормированияДокументов.Принципал, | БазаДляФормированияДокументов.СтавкаНДС, | БазаДляФормированияДокументов.ДоговорПринципала, | БазаДляФормированияДокументов.Номенклатура, | СУММА(БазаДляФормированияДокументов.Количество) КАК Количество, | СУММА(БазаДляФормированияДокументов.СуммаСУчетомСкидки) КАК Сумма, | СУММА(БазаДляФормированияДокументов.СуммаСУчетомСкидки / БазаДляФормированияДокументов.Количество) КАК Цена, | СУММА(ВЫРАЗИТЬ(ВЫБОР | КОГДА БазаДляФормированияДокументов.СтавкаНДС = ЗНАЧЕНИЕ(Перечисление.СтавкиНДС.БезНДС) | ТОГДА 0 | ИНАЧЕ БазаДляФормированияДокументов.СуммаСУчетомСкидки * 18 / 118 | КОНЕЦ КАК ЧИСЛО(15, 2))) КАК СуммаНДС, | МАКСИМУМ(ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.ТоварыНаСкладах)) КАК СчетУчета, | МАКСИМУМ(ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.ВыручкаНеЕНВД)) КАК СчетДоходов, | МАКСИМУМ(ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.СебестоимостьПродажНеЕНВД)) КАК СчетРасходов, | МАКСИМУМ(ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.Продажи_НДС)) КАК СчетУчетаНДСПоРеализации, | МАКСИМУМ(""Сформирован обработкой формирования документов"") КАК Комментарий, | МАКСИМУМ(ЗНАЧЕНИЕ(Перечисление.СпособыЗачетаАвансов.Автоматически)) КАК СпособЗачетаАвансов |ПОМЕСТИТЬ ДанныеДокументов |ИЗ | БазаДляФормированияДокументов КАК БазаДляФормированияДокументов |ГДЕ | ВЫБОР | КОГДА &ИмяФормируемогоДокумента В (&ИменаДокументовРаботающиеСНДС) | ТОГДА НЕ БазаДляФормированияДокументов.СтавкаНДС В (ЗНАЧЕНИЕ(Перечисление.СтавкиНДС.БезНДС), ЗНАЧЕНИЕ(Перечисление.СтавкиНДС.НДС0), ЗНАЧЕНИЕ(Перечисление.СтавкиНДС.ПустаяСсылка)) | ИНАЧЕ БазаДляФормированияДокументов.СтавкаНДС В (ЗНАЧЕНИЕ(Перечисление.СтавкиНДС.БезНДС), ЗНАЧЕНИЕ(Перечисление.СтавкиНДС.НДС0), ЗНАЧЕНИЕ(Перечисление.СтавкиНДС.ПустаяСсылка)) | КОНЕЦ | |СГРУППИРОВАТЬ ПО | ВЫРАЗИТЬ(БазаДляФормированияДокументов.Контрагент КАК Справочник.Контрагенты), | ВЫРАЗИТЬ(БазаДляФормированияДокументов.ДоговорКонтрагента КАК Справочник.ДоговорыКонтрагентов), | БазаДляФормированияДокументов.Склад, | БазаДляФормированияДокументов.Принципал, | БазаДляФормированияДокументов.СтавкаНДС, | БазаДляФормированияДокументов.ДоговорПринципала, | БазаДляФормированияДокументов.Номенклатура, | БазаДляФормированияДокументов.ГрузополучательКонтрагент, | ВЫРАЗИТЬ(БазаДляФормированияДокументов.ДоговорКонтрагента КАК Справочник.ДоговорыКонтрагентов).ВалютаВзаиморасчетов |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | ДанныеДокументов.Дата КАК Дата, | ДанныеДокументов.ВидОперации КАК ВидОперации, | ДанныеДокументов.ДатаНН КАК ДатаНН, | ДанныеДокументов.ДатаКН КАК ДатаКН, | ДанныеДокументов.Организация КАК Организация, | ДанныеДокументов.ОтражатьВНалоговомУчете КАК ОтражатьВНалоговомУчете, | ДанныеДокументов.СчетУчетаРасчетовСКонтрагентом КАК СчетУчетаРасчетовСКонтрагентом, | ДанныеДокументов.СчетУчетаРасчетовПоАвансам КАК СчетУчетаРасчетовПоАвансам, | ДанныеДокументов.Контрагент КАК Контрагент, | ДанныеДокументов.ДоговорКонтрагента КАК ДоговорКонтрагента, | ДанныеДокументов.Грузополучатель КАК Грузополучатель, | ДанныеДокументов.Грузоотправитель КАК Грузоотправитель, | ДанныеДокументов.Ответственный КАК Ответственный, | ДанныеДокументов.ВалютаДокумента КАК ВалютаДокумента, | ДанныеДокументов.УчитыватьНДС КАК УчитыватьНДС, | ДанныеДокументов.СуммаВключаетНДС КАК СуммаВключаетНДС, | ДанныеДокументов.Склад, | ДанныеДокументов.Принципал, | ДанныеДокументов.СтавкаНДС, | ДанныеДокументов.ДоговорПринципала, | ДанныеДокументов.Номенклатура, | ДанныеДокументов.Количество, | ДанныеДокументов.Сумма КАК Сумма, | ДанныеДокументов.Цена, | ДанныеДокументов.СуммаНДС, | ДанныеДокументов.СчетУчета, | ДанныеДокументов.СчетДоходов, | ДанныеДокументов.СчетРасходов, | ДанныеДокументов.СчетУчетаНДСПоРеализации, | ДанныеДокументов.Комментарий КАК Комментарий, | ДанныеДокументов.СпособЗачетаАвансов КАК СпособЗачетаАвансов |ИЗ | ДанныеДокументов КАК ДанныеДокументов |ИТОГИ | МАКСИМУМ(Дата), | МАКСИМУМ(ВидОперации), | МАКСИМУМ(ДатаНН), | МАКСИМУМ(ДатаКН), | МАКСИМУМ(Организация), | МАКСИМУМ(ОтражатьВНалоговомУчете), | МАКСИМУМ(СчетУчетаРасчетовСКонтрагентом), | МАКСИМУМ(СчетУчетаРасчетовПоАвансам), | МАКСИМУМ(Грузополучатель), | МАКСИМУМ(Грузоотправитель), | МАКСИМУМ(Ответственный), | МАКСИМУМ(ВалютаДокумента), | МАКСИМУМ(УчитыватьНДС), | МАКСИМУМ(СуммаВключаетНДС), | СУММА(Сумма), | МАКСИМУМ(Комментарий), | МАКСИМУМ(СпособЗачетаАвансов) |ПО | Контрагент, | ДоговорКонтрагента |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | УдаляемыеДокументы.Документ, | УдаляемыеДокументы.СчетФактура КАК СчетФактура |ИЗ | УдаляемыеДокументы КАК УдаляемыеДокументы |ИТОГИ ПО | СчетФактура |; | |//////////////////////////////////////////////////////////////////////////////// |УНИЧТОЖИТЬ ДанныеДокументов |; | |//////////////////////////////////////////////////////////////////////////////// |УНИЧТОЖИТЬ УдаляемыеДокументы"; Запрос.Текст =СтрЗаменить(Запрос.Текст, "&ИмяТаблициВидаФормируемогоДокумента", "Документ." +ИмяДокумента); Запрос.УстановитьПараметр("НачалоПериода", НачалоПериода); Запрос.УстановитьПараметр("КонецПериода", КонецПериода); Запрос.УстановитьПараметр("Организация", Организация); Запрос.УстановитьПараметр("БухСчет_6204", ПланыСчетов.Хозрасчетный.НайтиПоКоду("62.04") ); Запрос.УстановитьПараметр("Грузоотправитель", Грузоотправитель); Запрос.УстановитьПараметр("Ответственный", ПараметрыСеанса.ТекущийПользователь); Запрос.УстановитьПараметр("БазаДляФормированияДокументов", БазаДляФормирования); Запрос.УстановитьПараметр("ПрефиксСчетФактуры", ПрефиксСчетФактуры+РазделительПрефиксаИНомера); Запрос.УстановитьПараметр("ИмяФормируемогоДокумента", ИмяДокумента); Запрос.УстановитьПараметр("ИменаДокументовРаботающиеСНДС", мИменаДокументовРаботающиеСНДС); Запрос.УстановитьПараметр("ИменаДокументовОтражаемыеНаЗабалансовомСчете", ИменаДокументовОтражаемыеНаЗабалансовомСчете); ПакетДанных =Запрос.ВыполнитьПакет(); ВыборкаШапкиДокументаКонтрагенты =ПакетДанных[3].Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам); ВыборкаУдаляемыхСчетФактур =ПакетДанных[4].Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам); Пока ВыборкаУдаляемыхСчетФактур.Следующий() Цикл Если ВыборкаУдаляемыхСчетФактур.СчетФактура <> Null Тогда Сообщить("Удаление " +ВыборкаУдаляемыхСчетФактур.СчетФактура, СтатусСообщения.Внимание); ВыборкаУдаляемыхСчетФактур.СчетФактура.ПолучитьОбъект().Удалить() КонецЕсли; ВыборкаУдаляемыхДокументов =ВыборкаУдаляемыхСчетФактур.Выбрать(); Пока ВыборкаУдаляемыхДокументов.Следующий() Цикл Сообщить("Удаление " +ВыборкаУдаляемыхДокументов.Документ, СтатусСообщения.Внимание); ВыборкаУдаляемыхДокументов.Документ.ПолучитьОбъект().Удалить(); ОбработкаПрерыванияПользователя() КонецЦикла; ОбработкаПрерыванияПользователя() КонецЦикла; ОбновитьНумерациюОбъектов(Метаданные.Документы[ИмяДокумента]); Пока ВыборкаШапкиДокументаКонтрагенты.Следующий() Цикл ВыборкаШапкиДокументаДоговорыКонтрагентов =ВыборкаШапкиДокументаКонтрагенты.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам); Пока ВыборкаШапкиДокументаДоговорыКонтрагентов.Следующий() Цикл Документ =Документы[ИмяДокумента].СоздатьДокумент(); Документ.Номер =ПолучитьНомерНовогоДокумента(ИмяДокумента); ЗаполнитьЗначенияСвойств(Документ, ВыборкаШапкиДокументаДоговорыКонтрагентов); ВыборкаТоваров =ВыборкаШапкиДокументаДоговорыКонтрагентов.Выбрать(); Пока ВыборкаТоваров.Следующий() Цикл ЗаполнитьЗначенияСвойств(Документ.Товары.Добавить(), ВыборкаТоваров) КонецЦикла; Попытка Документ.Записать(РежимЗаписиДокумента.Проведение, РежимПроведенияДокумента.Неоперативный) Исключение Попытка Документ.Записать(РежимЗаписиДокумента.Запись) Исключение ВызватьИсключение ИмяДокумента +" по номером " +Документ.Номер +" уже существует" КонецПопытки КонецПопытки; СчетФактура =Документы.СчетФактураВыданный.СоздатьДокумент(); СчетФактура.Заполнить(Документ.Ссылка); СчетФактура.ВидСчетаФактуры =Перечисления.ВидСчетаФактурыВыставленного.НаРеализацию; СчетФактура.Номер =Документ.Номер; СчетФактура.Записать( ?( Документ.Проведен, РежимЗаписиДокумента.Проведение, РежимЗаписиДокумента.Запись), РежимПроведенияДокумента.Неоперативный); Сообщить("Сформирован документ " +Документ.Ссылка +", он " +Формат(Документ.Проведен, "БЛ='не проведен'; БИ=проведен") +" и " +СчетФактура.Ссылка); ОбработкаПрерыванияПользователя() КонецЦикла КонецЦикла; КонецПроцедуры |
|||
1
Альбатрос
28.11.13
✎
10:42
|
а что это бухгалтер занимается программированием?
|
|||
2
Aprobator
28.11.13
✎
10:45
|
охренеть.
|
|||
3
Холодильник
28.11.13
✎
10:47
|
после
ЗаполнитьЗначенияСвойств(Документ, ВыборкаШапкиДокументаДоговорыКонтрагентов); написать Документ.Ю_Менеджер = ВыборкаШапкиДокументаДоговорыКонтрагентов.Контрагент.Ю_Менеджер |
|||
4
Холодильник
28.11.13
✎
10:48
|
но удалять непосредственно и программно документы - сильно..
пользователи еще не поседели? |
|||
5
Яна93
28.11.13
✎
10:48
|
Потому, что нету программиста) за мизерные деньги ни один уважающий себя программист не станет даже просто просиживать штаны... (1)
|
|||
6
Яна93
28.11.13
✎
10:49
|
(3) Сейчас попробую;)
|
|||
7
zakidonoff
28.11.13
✎
10:49
|
(5) Можно не просиживать - найти на удалёнку.
|
|||
8
craxx
28.11.13
✎
10:50
|
(5) а уважающий себя бухгалтер будет?
|
|||
9
Wobland
28.11.13
✎
10:51
|
(5) "за такие деньги я готов ничего не делать и даже немного вредить"
|
|||
10
Холодильник
28.11.13
✎
10:52
|
пригласите приходящего студента, он вам за 300р/ч свернет горы. ну и базы свернет, хотя бы по крайней мере не будет удалять непосредственно документы
|
|||
11
Яна93
28.11.13
✎
10:53
|
(3) Спасииибо ОГРОМНОЕ!!! Сработало)
|
|||
12
Яна93
28.11.13
✎
10:55
|
(8) А мне деваться некуда) везде нужен хороший стаж) поэтому стараюсь на практике учиться по максимуму)
|
|||
13
Яна93
28.11.13
✎
10:55
|
(9) =))))
|
|||
14
Холодильник
28.11.13
✎
10:57
|
какая однако продвинутая девушка.. "Интересно все новое"
Девушка, вашей маме зять не нужен? |
|||
15
Яна93
28.11.13
✎
11:08
|
(14) Ну это к маме вопрос))) передам xD
|
|||
16
Aprobator
28.11.13
✎
12:09
|
(3) решение конечно работающее, но дурное. ИМХО, в запросе получить значение реквизита было бы правильнее.
|
|||
17
Холодильник
28.11.13
✎
12:15
|
(16) да, можно и так. я делал как мне проще
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |