| 
    
            
         
         | 
    
  | 
Заполнить реквизит документа Реализации | ☑ | ||
|---|---|---|---|---|
| 
    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) да, можно и так. я делал как мне проще     
         | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |