И снова здрасте! Опять возникла проблема. Для поиска документов для которых текущий является основанием использовал поиск по номеру документа, но как выяснилось нумерация документов ведется в пределах года соответственно искать нужно по сочетанию номер дата, сделал следующим образом:
Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | РеализацияТоваровУслуг.Сделка.Номер КАК СделкаНомер1, | ЗаказНаПроизводствоПродукция.Заказ.Номер, | НалоговаяНакладная.Сделка.Номер |ИЗ | Документ.НалоговаяНакладная КАК НалоговаяНакладная | ПОЛНОЕ СОЕДИНЕНИЕ Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг | ПОЛНОЕ СОЕДИНЕНИЕ Документ.ЗаказНаПроизводство.Продукция КАК ЗаказНаПроизводствоПродукция | ПО (ЗаказНаПроизводствоПродукция.Заказ.Номер = РеализацияТоваровУслуг.Сделка.Номер) | ПО (РеализацияТоваровУслуг.Сделка.Номер = НалоговаяНакладная.Сделка.Номер) |ГДЕ | ЗаказНаПроизводствоПродукция.Заказ.Дата = &Дата | И НалоговаяНакладная.Сделка.Дата = &Дата | И РеализацияТоваровУслуг.Сделка.Дата = &Дата"; Запрос.УстановитьПараметр("Дата", ЭтотОбъект.Дата); Выборка = Запрос.Выполнить().Выбрать();
неработает, причем если брать без условий то все в порядке (если не считать кучу документов с одинаковыми номерами за разные периоды) Кто нить знает в чем проблема?
А реквизит ДокументОснвоание уже отменили? Этот Ваш запрос найдет всё что угодно, но не то,что надо, выкиньте его, и больше никому не показывайте.
в документах РеализацияТоваровУслуг и НалоговаяНакладная документ-основание прописывается в реквизите Сделка, а в документе ЗаказНаПроизводство документ-основание прописывается в табличной части
Группа: Местный
Сообщений: 9564
Из: Kharkiv, UA
Спасибо сказали: 2536 раз
Рейтинг: 0
Цитата(valera_avp @ 26.04.13, 16:14)
в документах РеализацияТоваровУслуг и НалоговаяНакладная документ-основание прописывается в реквизите Сделка, а в документе ЗаказНаПроизводство документ-основание прописывается в табличной части
Ну и? В чем проблема?
Личные бесплатные консультации не даю, для этого есть форум!
Группа: Основатель
Сообщений: 13983
Из: Киев
Спасибо сказали: 4553 раз
Рейтинг: 3679.4
Может так?
Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | РеализацияТоваровУслуг.Сделка.Номер КАК СделкаНомер1, | ЗаказНаПроизводствоПродукция.Заказ.Номер, | НалоговаяНакладная.Сделка.Номер |ИЗ | Документ.НалоговаяНакладная КАК НалоговаяНакладная | ПОЛНОЕ СОЕДИНЕНИЕ Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг | ПОЛНОЕ СОЕДИНЕНИЕ Документ.ЗаказНаПроизводство.Продукция КАК ЗаказНаПроизводствоПродукция | ПО (ЗаказНаПроизводствоПродукция.Заказ.Номер = РеализацияТоваровУслуг.Сделка.Номер) | ПО (РеализацияТоваровУслуг.Сделка.Номер = НалоговаяНакладная.Сделка.Номер) |ГДЕ | ЗаказНаПроизводствоПродукция.Заказ.Дата < &Дата | И НалоговаяНакладная.Сделка.Дата < &Дата | И РеализацияТоваровУслуг.Сделка.Дата < &Дата"; Запрос.УстановитьПараметр("Дата", НачалоГода(ЭтотОбъект.Дата)); Выборка = Запрос.Выполнить().Выбрать();
Группа: Местный
Сообщений: 9564
Из: Kharkiv, UA
Спасибо сказали: 2536 раз
Рейтинг: 0
Ребята, я не пойму чего вы привязались к этим номерам? Завтра пойдет сбой номеров и документы не будут совпадать что тогда? Работайте с ДокументОснование.
Личные бесплатные консультации не даю, для этого есть форум!
Группа: Местный
Сообщений: 2908
Из: Київ, Україна
Спасибо сказали: 1159 раз
Рейтинг: 1244.5
Цитата(valera_avp @ 26.04.13, 18:12)
не совсем понял суть можно примерчик
Что-то типо того:
Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | РеализацияТоваровУслуг.Сделка.Номер КАК СделкаНомер1, | ЗаказНаПроизводствоПродукция.Заказ.Номер, | НалоговаяНакладная.Сделка.Номер |ИЗ | Документ.НалоговаяНакладная КАК НалоговаяНакладная | ПОЛНОЕ СОЕДИНЕНИЕ Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг | ПОЛНОЕ СОЕДИНЕНИЕ Документ.ЗаказНаПроизводство.Продукция КАК ЗаказНаПроизводствоПродукция | ПО (ЗаказНаПроизводствоПродукция.Заказ.Номер = РеализацияТоваровУслуг.Сделка.Номер) | И (ЗаказНаПроизводствоПродукция.Заказ.Дата = &Дата) | И (РеализацияТоваровУслуг.Сделка.Дата = &Дата) | ПО (РеализацияТоваровУслуг.Сделка.Номер = НалоговаяНакладная.Сделка.Номер) | И (РеализацияТоваровУслуг.Сделка.Дата = &Дата) | И (НалоговаяНакладная.Сделка.Дата = &Дата)"; Запрос.УстановитьПараметр("Дата", ЭтотОбъект.Дата); Выборка = Запрос.Выполнить().Выбрать();
Допрацьовую: - "Бухгалтерія для України 2.1"; - "Альфа-Авто: Автосалон+Автосервіс+Автозапчастини, українська версія".
У меня есть документ РеализацияТоваровУслуг у которого в поле Сделка прописано что основанием для этого документа является ЗакакПопупателя, как мне при перепроведении ЗаказПокупателя проверить что на его основании создан документ РеализацияТоваровУслуг и запретить перепроведение документа ЗаказПокупателя!!!
Группа: Местный
Сообщений: 9564
Из: Kharkiv, UA
Спасибо сказали: 2536 раз
Рейтинг: 0
типа такого
// вставить в ОбработкаПроведения заказа Запрос = Новый Запрос("ВЫБРАТЬ ПЕРВЫЕ 1 | РеализацияТоваровУслуг.Ссылка |ИЗ | Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг |ГДЕ | РеализацияТоваровУслуг.Сделка = &ДокументОснование"); Запрос.УстановитьПараметр("ДокументОснование", Ссылка); // Это ссылка на заказ (т.е. текущий док) Результат = Запрос.Выполнить(); Отказ = Не Результат.Пустой(); // если найдется хоть одна накладная - это вызовет отмену проведения.
Личные бесплатные консультации не даю, для этого есть форум!
Сделал ПОЧТИ так как советовал logist ПОЛУЧИЛОСЬ!!!! Текст выкладывать небуду, потому что ну ОСЕНЬ СТРАШНЫЙ получился (раскритикуете в пух и прах) Всем спасибо за участие!!!!
Группа: Местный
Сообщений: 9564
Из: Kharkiv, UA
Спасибо сказали: 2536 раз
Рейтинг: 0
Цитата(Vofka @ 29.04.13, 12:47)
я на форуме когда-то уже выкладывал это:
Это понятно, но ведь надо же подсказать человеку, что ничего страшного в этом нет. Тем более человек старается, что-то делает, а не приходит на форум с фразой "напишите мне код".
Личные бесплатные консультации не даю, для этого есть форум!
Если РольДоступна("МенеджерПоПродажам1") Тогда Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | РеализацияТоваровУслуг.Ссылка, | НалоговаяНакладная.Ссылка КАК Ссылка1, | ЗаказНаПроизводствоПродукция.Ссылка КАК Ссылка2, | ЗаказПокупателя.Ссылка КАК Ссылка3 |ИЗ | Документ.ЗаказПокупателя КАК ЗаказПокупателя | ЛЕВОЕ СОЕДИНЕНИЕ Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг | ПО (РеализацияТоваровУслуг.Сделка = ЗаказПокупателя.Ссылка) | ЛЕВОЕ СОЕДИНЕНИЕ Документ.НалоговаяНакладная КАК НалоговаяНакладная | ПО (НалоговаяНакладная.Сделка = ЗаказПокупателя.Ссылка) | ЛЕВОЕ СОЕДИНЕНИЕ Документ.ЗаказНаПроизводство.Продукция КАК ЗаказНаПроизводствоПродукция | ПО (ЗаказНаПроизводствоПродукция.Заказ = ЗаказПокупателя.Ссылка) |ГДЕ | (ЗаказНаПроизводствоПродукция.Заказ = &Сделка | ИЛИ НалоговаяНакладная.Сделка = &Сделка | ИЛИ РеализацияТоваровУслуг.Сделка = &Сделка)"; Запрос.УстановитьПараметр("Сделка",ЭтотОбъект.Ссылка); Выборка = Запрос.Выполнить().Выбрать();
Если Выборка.НайтиСледующий(ЭтотОбъект.Ссылка,"Ссылка3") Тогда Отказ = Истина; Сообщить("Документ является основанием для " + Выборка.Ссылка + Выборка.Ссылка1 + Выборка.Ссылка2); Сообщить("Перепроведение документа ЗАПРЕЩЕНО!"); КонецЕсли; КонецЕсли;
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!