|
Документы формируются не по алфавиту | ☑ | ||
---|---|---|---|---|
0
Яна93
12.02.14
✎
12:15
|
Всем привет! С утра уже сижу пытаюсь упорядочить создание документов, что бы формировались по алфавиту... но в результате все равно Контрагенты в разброс идут.. В общем я хочу добиться того чтобы номер документа и Контрагенты шли в унисон по порядку.. в запросе как только не прописывала "Упорядочить по", "Автоупорядочивание" и т.д. Подскажите пожалуйста почему не выходит? Может дело не в запросе...
Процедура СформироватьДокументы(Знач ИмяДокумента, Знач БазаДляФормирования) Перем Запрос; Перем ПакетДанных; Перем ВыборкаШапкиДокументаКонтрагенты, ВыборкаШапкиДокументаДоговорыКонтрагентов, ВыборкаТоваров, ВыборкаУдаляемыхДокументов, ВыборкаУдаляемыхСчетФактур; Перем Документ; Перем СчетФактура; Состояние("Формирование документов вида: " +Метаданные.Документы[ИмяДокумента].Синоним); Запрос =Новый Запрос; Запрос.Текст ="ВЫБРАТЬ | БазаДляФормированияДокументов.Контрагент, | БазаДляФормированияДокументов.ДоговорКонтрагента, | БазаДляФормированияДокументов.ГрузополучательКонтрагент, | БазаДляФормированияДокументов.Склад, | БазаДляФормированияДокументов.Принципал, | БазаДляФормированияДокументов.СтавкаНДС, | БазаДляФормированияДокументов.ДоговорПринципала, | БазаДляФормированияДокументов.Номенклатура, | БазаДляФормированияДокументов.Количество, | БазаДляФормированияДокументов.СуммаСУчетомСкидки |ПОМЕСТИТЬ БазаДляФормированияДокументов |ИЗ | &БазаДляФормированияДокументов КАК БазаДляФормированияДокументов |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | Документы.Ссылка КАК Документ, | СчетФактураВыданный.Ссылка КАК СчетФактура |ПОМЕСТИТЬ УдаляемыеДокументы |ИЗ | &ИмяТаблициВидаФормируемогоДокумента КАК Документы | ЛЕВОЕ СОЕДИНЕНИЕ Документ.СчетФактураВыданный КАК СчетФактураВыданный | ПО (СчетФактураВыданный.ДокументОснование = Документы.Ссылка) |ГДЕ | Документы.Дата = НАЧАЛОПЕРИОДА(&КонецПериода, ДЕНЬ) | И Документы.ДатаНН = НАЧАЛОПЕРИОДА(&НачалоПериода, ДЕНЬ) | И Документы.ДатаКН = НАЧАЛОПЕРИОДА(&КонецПериода, ДЕНЬ) | И Документы.Комментарий ПОДОБНО ""Сформирован обработкой формирования документов"" | И Документы.Контрагент В | (ВЫБРАТЬ | БазаДляФормированияДокументов.Контрагент | ИЗ | БазаДляФормированияДокументов) | И Документы.ДоговорКонтрагента В | (ВЫБРАТЬ | БазаДляФормированияДокументов.ДоговорКонтрагента | ИЗ | БазаДляФормированияДокументов) | И Документы.Номер ПОДОБНО &ПрефиксСчетФактуры + ""%"" |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | МАКСИМУМ(НАЧАЛОПЕРИОДА(&КонецПериода, ДЕНЬ)) КАК Дата, | МАКСИМУМ(ЗНАЧЕНИЕ(Перечисление.ВидыОперацийРеализацияТоваров.ПродажаКомиссия)) КАК ВидОперации, | МАКСИМУМ(НАЧАЛОПЕРИОДА(&НачалоПериода, ДЕНЬ)) КАК ДатаНН, | МАКСИМУМ(КОНЕЦПЕРИОДА(&КонецПериода, ДЕНЬ)) КАК ДатаКН, | МАКСИМУМ(&Организация) КАК Организация, | МАКСИМУМ(ИСТИНА) КАК ОтражатьВНалоговомУчете, | МАКСИМУМ(&БухСчет_6204) КАК СчетУчетаРасчетовСКонтрагентом, | МАКСИМУМ(ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.РасчетыПоАвансамПолученным)) КАК СчетУчетаРасчетовПоАвансам, | ВЫРАЗИТЬ(БазаДляФормированияДокументов.Контрагент КАК Справочник.Контрагенты) КАК Контрагент, | ВЫРАЗИТЬ(БазаДляФормированияДокументов.ДоговорКонтрагента КАК Справочник.ДоговорыКонтрагентов) КАК ДоговорКонтрагента, | БазаДляФормированияДокументов.ГрузополучательКонтрагент КАК Грузополучатель, | МАКСИМУМ(&Грузоотправитель) КАК Грузоотправитель, | МАКСИМУМ(&Ответственный) КАК Ответственный, | ВЫРАЗИТЬ(БазаДляФормированияДокументов.ДоговорКонтрагента КАК Справочник.ДоговорыКонтрагентов).ВалютаВзаиморасчетов КАК ВалютаДокумента, | МАКСИМУМ(ИСТИНА) КАК УчитыватьНДС, | МАКСИМУМ(ИСТИНА) КАК СуммаВключаетНДС, | БазаДляФормированияДокументов.Склад, | БазаДляФормированияДокументов.Принципал, | БазаДляФормированияДокументов.СтавкаНДС, | БазаДляФормированияДокументов.ДоговорПринципала, | БазаДляФормированияДокументов.Номенклатура, | СУММА(БазаДляФормированияДокументов.Количество) КАК Количество, | СУММА(БазаДляФормированияДокументов.СуммаСУчетомСкидки) КАК Сумма, | СУММА(БазаДляФормированияДокументов.СуммаСУчетомСкидки) / СУММА(БазаДляФормированияДокументов.Количество) КАК Цена, | СУММА(ВЫРАЗИТЬ(ВЫБОР | КОГДА БазаДляФормированияДокументов.СтавкаНДС = ЗНАЧЕНИЕ(Перечисление.СтавкиНДС.БезНДС) | ТОГДА 0 | ИНАЧЕ БазаДляФормированияДокументов.СуммаСУчетомСкидки * 18 / 118 | КОНЕЦ КАК ЧИСЛО(15, 2))) КАК СуммаНДС, | МАКСИМУМ(ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.ТоварыНаСкладах)) КАК СчетУчета, | МАКСИМУМ(ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.ВыручкаНеЕНВД)) КАК СчетДоходов, | МАКСИМУМ(ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.СебестоимостьПродажНеЕНВД)) КАК СчетРасходов, | МАКСИМУМ(ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.Продажи_НДС)) КАК СчетУчетаНДСПоРеализации, | МАКСИМУМ(""Сформирован обработкой формирования документов"") КАК Комментарий, | МАКСИМУМ(ЗНАЧЕНИЕ(Перечисление.СпособыЗачетаАвансов.Автоматически)) КАК СпособЗачетаАвансов |ПОМЕСТИТЬ ДанныеДокументов |ИЗ | БазаДляФормированияДокументов КАК БазаДляФормированияДокументов |ГДЕ | ВЫБОР | КОГДА &ИмяФормируемогоДокумента В (&ИменаДокументовРаботающиеСНДС) | ТОГДА НЕ БазаДляФормированияДокументов.СтавкаНДС В (ЗНАЧЕНИЕ(Перечисление.СтавкиНДС.БезНДС), ЗНАЧЕНИЕ(Перечисление.СтавкиНДС.НДС0), ЗНАЧЕНИЕ(Перечисление.СтавкиНДС.ПустаяСсылка)) | ИНАЧЕ БазаДляФормированияДокументов.СтавкаНДС В (ЗНАЧЕНИЕ(Перечисление.СтавкиНДС.БезНДС), ЗНАЧЕНИЕ(Перечисление.СтавкиНДС.НДС0), ЗНАЧЕНИЕ(Перечисление.СтавкиНДС.ПустаяСсылка)) | КОНЕЦ | |СГРУППИРОВАТЬ ПО | ВЫРАЗИТЬ(БазаДляФормированияДокументов.Контрагент КАК Справочник.Контрагенты), | ВЫРАЗИТЬ(БазаДляФормированияДокументов.ДоговорКонтрагента КАК Справочник.ДоговорыКонтрагентов), | БазаДляФормированияДокументов.Склад, | БазаДляФормированияДокументов.Принципал, | БазаДляФормированияДокументов.СтавкаНДС, | БазаДляФормированияДокументов.ДоговорПринципала, | БазаДляФормированияДокументов.Номенклатура, | БазаДляФормированияДокументов.ГрузополучательКонтрагент, | ВЫРАЗИТЬ(БазаДляФормированияДокументов.ДоговорКонтрагента КАК Справочник.ДоговорыКонтрагентов).ВалютаВзаиморасчетов |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | ДанныеДокументов.Дата КАК Дата, | ДанныеДокументов.ВидОперации КАК ВидОперации, | ДанныеДокументов.ДатаНН КАК ДатаНН, | ДанныеДокументов.ДатаКН КАК ДатаКН, | ДанныеДокументов.Организация КАК Организация, | ДанныеДокументов.ОтражатьВНалоговомУчете КАК ОтражатьВНалоговомУчете, | ДанныеДокументов.СчетУчетаРасчетовСКонтрагентом КАК СчетУчетаРасчетовСКонтрагентом, | ДанныеДокументов.СчетУчетаРасчетовПоАвансам КАК СчетУчетаРасчетовПоАвансам, | ДанныеДокументов.Контрагент КАК Контрагент, | ДанныеДокументов.ДоговорКонтрагента КАК ДоговорКонтрагента, | ДанныеДокументов.Грузополучатель КАК Грузополучатель, | ДанныеДокументов.Грузоотправитель КАК Грузоотправитель, | ДанныеДокументов.Ответственный КАК Ответственный, | ДанныеДокументов.ВалютаДокумента КАК ВалютаДокумента, | ДанныеДокументов.УчитыватьНДС КАК УчитыватьНДС, | ДанныеДокументов.СуммаВключаетНДС КАК СуммаВключаетНДС, | ДанныеДокументов.Склад, | ДанныеДокументов.Принципал, | ДанныеДокументов.СтавкаНДС, | ДанныеДокументов.ДоговорПринципала, | ДанныеДокументов.Номенклатура, | ДанныеДокументов.Количество, | ДанныеДокументов.Сумма КАК Сумма, | ДанныеДокументов.Цена, | ДанныеДокументов.СуммаНДС, | ДанныеДокументов.СчетУчета, | ДанныеДокументов.СчетДоходов, | ДанныеДокументов.СчетРасходов, | ДанныеДокументов.СчетУчетаНДСПоРеализации, | ДанныеДокументов.Комментарий КАК Комментарий, | ДанныеДокументов.СпособЗачетаАвансов КАК СпособЗачетаАвансов |ИЗ | ДанныеДокументов КАК ДанныеДокументов |ИТОГИ | МАКСИМУМ(Дата), | МАКСИМУМ(ВидОперации), | МАКСИМУМ(ДатаНН), | МАКСИМУМ(ДатаКН), | МАКСИМУМ(Организация), | МАКСИМУМ(ОтражатьВНалоговомУчете), | МАКСИМУМ(СчетУчетаРасчетовСКонтрагентом), | МАКСИМУМ(СчетУчетаРасчетовПоАвансам), | МАКСИМУМ(Грузополучатель), | МАКСИМУМ(Грузоотправитель), | МАКСИМУМ(Ответственный), | МАКСИМУМ(ВалютаДокумента), | МАКСИМУМ(УчитыватьНДС), | МАКСИМУМ(СуммаВключаетНДС), | СУММА(Сумма), | МАКСИМУМ(Комментарий), | МАКСИМУМ(СпособЗачетаАвансов) |ПО | Контрагент, | ДоговорКонтрагента |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | УдаляемыеДокументы.Документ, | УдаляемыеДокументы.СчетФактура КАК СчетФактура |ИЗ | УдаляемыеДокументы КАК УдаляемыеДокументы |ИТОГИ ПО | СчетФактура |; | |//////////////////////////////////////////////////////////////////////////////// |УНИЧТОЖИТЬ ДанныеДокументов |; | |//////////////////////////////////////////////////////////////////////////////// |УНИЧТОЖИТЬ УдаляемыеДокументы"; Запрос.Текст =СтрЗаменить(Запрос.Текст, "&ИмяТаблициВидаФормируемогоДокумента", "Документ." +ИмяДокумента); Запрос.УстановитьПараметр("НачалоПериода", НачалоПериода); Запрос.УстановитьПараметр("КонецПериода", КонецПериода); Запрос.УстановитьПараметр("Организация", Организация); Запрос.УстановитьПараметр("БухСчет_6204", ПланыСчетов.Хозрасчетный.НайтиПоКоду("62.04") ); Запрос.УстановитьПараметр("Грузоотправитель", Грузоотправитель); Запрос.УстановитьПараметр("Ответственный", ПараметрыСеанса.ТекущийПользователь); Запрос.УстановитьПараметр("БазаДляФормированияДокументов", БазаДляФормирования); Запрос.УстановитьПараметр("ПрефиксСчетФактуры", ПрефиксСчетФактуры+РазделительПрефиксаИНомера); Запрос.УстановитьПараметр("ИмяФормируемогоДокумента", ИмяДокумента); Запрос.УстановитьПараметр("ИменаДокументовРаботающиеСНДС", мИменаДокументовРаботающиеСНДС); Запрос.УстановитьПараметр("ИменаДокументовОтражаемыеНаЗабалансовомСчете", ИменаДокументовОтражаемыеНаЗабалансовомСчете); ПакетДанных =Запрос.ВыполнитьПакет(); ВыборкаШапкиДокументаКонтрагенты =ПакетДанных[3].Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам); ВыборкаУдаляемыхСчетФактур =ПакетДанных[4].Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам); Пока ВыборкаУдаляемыхСчетФактур.Следующий() Цикл Если ВыборкаУдаляемыхСчетФактур.СчетФактура <> Null Тогда Сообщить("Удаление " +ВыборкаУдаляемыхСчетФактур.СчетФактура, СтатусСообщения.Внимание); ВыборкаУдаляемыхСчетФактур.СчетФактура.ПолучитьОбъект().Удалить() КонецЕсли; ВыборкаУдаляемыхДокументов =ВыборкаУдаляемыхСчетФактур.Выбрать(); Пока ВыборкаУдаляемыхДокументов.Следующий() Цикл Сообщить("Удаление " +ВыборкаУдаляемыхДокументов.Документ, СтатусСообщения.Внимание); ВыборкаУдаляемыхДокументов.Документ.ПолучитьОбъект().Удалить(); ОбработкаПрерыванияПользователя() КонецЦикла; ОбработкаПрерыванияПользователя() КонецЦикла; ОбновитьНумерациюОбъектов(Метаданные.Документы[ИмяДокумента]); Пока ВыборкаШапкиДокументаКонтрагенты.Следующий() Цикл ВыборкаШапкиДокументаДоговорыКонтрагентов =ВыборкаШапкиДокументаКонтрагенты.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам); Пока ВыборкаШапкиДокументаДоговорыКонтрагентов.Следующий() Цикл Документ =Документы[ИмяДокумента].СоздатьДокумент(); Документ.Номер =ПолучитьНомерНовогоДокумента(ИмяДокумента); ЗаполнитьЗначенияСвойств(Документ, ВыборкаШапкиДокументаДоговорыКонтрагентов); Документ.Ю_Менеджер = ВыборкаШапкиДокументаДоговорыКонтрагентов.Контрагент.Ю_Менеджер; ВыборкаТоваров =ВыборкаШапкиДокументаДоговорыКонтрагентов.Выбрать(); Пока ВыборкаТоваров.Следующий() Цикл ЗаполнитьЗначенияСвойств(Документ.Товары.Добавить(), ВыборкаТоваров) КонецЦикла; Попытка Документ.Записать(РежимЗаписиДокумента.Проведение, РежимПроведенияДокумента.Неоперативный) Исключение Попытка Документ.Записать(РежимЗаписиДокумента.Запись) Исключение ВызватьИсключение ИмяДокумента +" по номером " +Документ.Номер +" уже существует" КонецПопытки КонецПопытки; СчетФактура =Документы.СчетФактураВыданный.СоздатьДокумент(); СчетФактура.Заполнить(Документ.Ссылка); СчетФактура.ВидСчетаФактуры =Перечисления.ВидСчетаФактурыВыставленного.НаРеализацию; СчетФактура.Номер =Документ.Номер; СчетФактура.Записать( ?( Документ.Проведен, РежимЗаписиДокумента.Проведение, РежимЗаписиДокумента.Запись), РежимПроведенияДокумента.Неоперативный); Сообщить("Сформирован документ " +Документ.Ссылка +", он " +Формат(Документ.Проведен, "БЛ='не проведен'; БИ=проведен") +" и " +СчетФактура.Ссылка); ОбработкаПрерыванияПользователя() КонецЦикла КонецЦикла; КонецПроцедуры // СформироватьДокументы() |
|||
1
Chameleon1980
12.02.14
✎
12:17
|
А где упорядочить то?
|
|||
2
Defender aka LINN
12.02.14
✎
12:17
|
Ты что думаешь, это кто-то реально читать будет?
Позовите программиста, да и все. |
|||
3
Яна93
12.02.14
✎
12:19
|
(1) к примеру я пыталась делать что то подобное :
| БазаДляФормированияДокументов.Контрагент, | БазаДляФормированияДокументов.ДоговорКонтрагента, | БазаДляФормированияДокументов.ГрузополучательКонтрагент, | БазаДляФормированияДокументов.Склад, | БазаДляФормированияДокументов.Принципал, | БазаДляФормированияДокументов.СтавкаНДС, | БазаДляФормированияДокументов.ДоговорПринципала, | БазаДляФормированияДокументов.Номенклатура, | БазаДляФормированияДокументов.Количество, | БазаДляФормированияДокументов.СуммаСУчетомСкидки |ПОМЕСТИТЬ БазаДляФормированияДокументов |ИЗ | &БазаДляФормированияДокументов КАК БазаДляФормированияДокументов |УПОРЯДОЧИТЬ ПО БазаДляФормированияДокументов.Контрагент; | |
|||
4
Яна93
12.02.14
✎
12:20
|
Конечно же в подобной ситуации надо еще после слова ВЫБРАТЬ писать слово ПЕРВЫЕ..но ни чего не помогло
|
|||
5
chelentano
12.02.14
✎
12:21
|
(3) УПОРЯДОЧИТЬ ПО БазаДляФормированияДокументов.Контрагент - сортирует по ссылке, а не по наименованию
|
|||
6
Яна93
12.02.14
✎
12:26
|
(5) Значит в запросе я не смогу реализовать порядок?
|
|||
7
mikecool
12.02.14
✎
12:27
|
(6) выбери наименование и сортируй по нему
|
|||
8
Яна93
12.02.14
✎
12:35
|
(7) А можно на пальцах объяснить? Я зависла :)
Начала в запросе искать другие варианты..пока не вижу вариантов.. |
|||
9
catena
12.02.14
✎
12:38
|
(8)Упорядочить по Контрагент.Наименование.
|
|||
10
Яна93
12.02.14
✎
12:40
|
(9) Спасибо большое) Сейчас попробую)
|
|||
11
sirsp
12.02.14
✎
12:44
|
(3) Упорядочивать надо последний запрос пакета, а не там, где формируется временная таблица.
|
|||
12
Яна93
12.02.14
✎
12:47
|
(11) последний значит примерно так должно быть:
ВЫБРАТЬ | ДанныеДокументов.Дата КАК Дата, | ДанныеДокументов.ВидОперации КАК ВидОперации, | ДанныеДокументов.ДатаНН КАК ДатаНН, | ДанныеДокументов.ДатаКН КАК ДатаКН, | ДанныеДокументов.Организация КАК Организация, | ДанныеДокументов.ОтражатьВНалоговомУчете КАК ОтражатьВНалоговомУчете, | ДанныеДокументов.СчетУчетаРасчетовСКонтрагентом КАК СчетУчетаРасчетовСКонтрагентом, | ДанныеДокументов.СчетУчетаРасчетовПоАвансам КАК СчетУчетаРасчетовПоАвансам, | ДанныеДокументов.Контрагент КАК Контрагент, | ДанныеДокументов.ДоговорКонтрагента КАК ДоговорКонтрагента, | ДанныеДокументов.Грузополучатель КАК Грузополучатель, | ДанныеДокументов.Грузоотправитель КАК Грузоотправитель, | ДанныеДокументов.Ответственный КАК Ответственный, | ДанныеДокументов.ВалютаДокумента КАК ВалютаДокумента, | ДанныеДокументов.УчитыватьНДС КАК УчитыватьНДС, | ДанныеДокументов.СуммаВключаетНДС КАК СуммаВключаетНДС, | ДанныеДокументов.Склад, | ДанныеДокументов.Принципал, | ДанныеДокументов.СтавкаНДС, | ДанныеДокументов.ДоговорПринципала, | ДанныеДокументов.Номенклатура, | ДанныеДокументов.Количество, | ДанныеДокументов.Сумма КАК Сумма, | ДанныеДокументов.Цена, | ДанныеДокументов.СуммаНДС, | ДанныеДокументов.СчетУчета, | ДанныеДокументов.СчетДоходов, | ДанныеДокументов.СчетРасходов, | ДанныеДокументов.СчетУчетаНДСПоРеализации, | ДанныеДокументов.Комментарий КАК Комментарий, | ДанныеДокументов.СпособЗачетаАвансов КАК СпособЗачетаАвансов |ИЗ | ДанныеДокументов КАК ДанныеДокументов |Упорядочить по Контрагент.Наименование |
|||
13
Яна93
12.02.14
✎
12:52
|
(12) Попробывала..не помогло...(
|
|||
14
Яна93
12.02.14
✎
13:00
|
(11) (9) Извиняюсь..) сама ошибку там допустила) Все работает) Спасибо ВАМ!!!!
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |