Заказы на доработку 1С (сервис удаленной работы)

Хранилище

База знаний
Бесплатные отчеты, обработки, конфигурации, внешние компоненты для 1С Статьи, описание работы, методики по работе с 1С

Здравствуйте, гость ( Вход | Зарегистрироваться )



> Поиск документов основанных на текущем          
valera_avp Подменю пользователя
сообщение 26.04.13, 15:57
Сообщение #1

Общительный
**
Группа: Пользователи
Сообщений: 19
Из: Киев
Спасибо сказали: 0 раз
Рейтинг: 0

И снова здрасте!
Опять возникла проблема.
Для поиска документов для которых текущий является основанием использовал поиск по номеру документа, но как выяснилось нумерация документов ведется в пределах года соответственно искать нужно по сочетанию номер дата, сделал следующим образом:
Запрос = Новый Запрос;
        Запрос.Текст =
            "ВЫБРАТЬ
            |    РеализацияТоваровУслуг.Сделка.Номер КАК СделкаНомер1,
            |    ЗаказНаПроизводствоПродукция.Заказ.Номер,
            |    НалоговаяНакладная.Сделка.Номер
            |ИЗ
            |    Документ.НалоговаяНакладная КАК НалоговаяНакладная
            |        ПОЛНОЕ СОЕДИНЕНИЕ Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг
            |            ПОЛНОЕ СОЕДИНЕНИЕ Документ.ЗаказНаПроизводство.Продукция КАК ЗаказНаПроизводствоПродукция
            |            ПО (ЗаказНаПроизводствоПродукция.Заказ.Номер = РеализацияТоваровУслуг.Сделка.Номер)
            |        ПО (РеализацияТоваровУслуг.Сделка.Номер = НалоговаяНакладная.Сделка.Номер)
            |ГДЕ
            |    ЗаказНаПроизводствоПродукция.Заказ.Дата = &Дата
            |    И НалоговаяНакладная.Сделка.Дата = &Дата
            |    И РеализацияТоваровУслуг.Сделка.Дата = &Дата";
        Запрос.УстановитьПараметр("Дата", ЭтотОбъект.Дата);
        Выборка = Запрос.Выполнить().Выбрать();



неработает, причем если брать без условий то все в порядке (если не считать кучу документов с одинаковыми номерами за разные периоды) Кто нить знает в чем проблема?


Signature
платформа 8.2.16 УПП 1.3

logist Подменю пользователя
сообщение 26.04.13, 16:03
Сообщение #2

Про1С-ник
Иконка группы
Квалифицированный бухгалтерГений телепатии и социального моделированияЗа заслуги на форуме в 2010 годуМодератору Про1С (за заслуги в 2011 году)
Группа: Местный
Сообщений: 9564
Из: Kharkiv, UA
Спасибо сказали: 2536 раз
Рейтинг: 0

А реквизит ДокументОснвоание уже отменили? Этот Ваш запрос найдет всё что угодно, но не то,что надо, выкиньте его, и больше никому не показывайте.


Signature
Личные бесплатные консультации не даю, для этого есть форум!

valera_avp Подменю пользователя
сообщение 26.04.13, 16:14
Сообщение #3

Общительный
**
Группа: Пользователи
Сообщений: 19
Из: Киев
Спасибо сказали: 0 раз
Рейтинг: 0

Цитата(logist @ 26.04.13, 16:03) *
А реквизит ДокументОснвоание уже отменили? Этот Ваш запрос найдет всё что угодно, но не то,что надо, выкиньте его, и больше никому не показывайте.

в документах РеализацияТоваровУслуг и НалоговаяНакладная документ-основание прописывается в реквизите Сделка, а в документе ЗаказНаПроизводство документ-основание прописывается в табличной части


Signature
платформа 8.2.16 УПП 1.3

logist Подменю пользователя
сообщение 26.04.13, 16:18
Сообщение #4

Про1С-ник
Иконка группы
Квалифицированный бухгалтерГений телепатии и социального моделированияЗа заслуги на форуме в 2010 годуМодератору Про1С (за заслуги в 2011 году)
Группа: Местный
Сообщений: 9564
Из: Kharkiv, UA
Спасибо сказали: 2536 раз
Рейтинг: 0

Цитата(valera_avp @ 26.04.13, 16:14) *
в документах РеализацияТоваровУслуг и НалоговаяНакладная документ-основание прописывается в реквизите Сделка, а в документе ЗаказНаПроизводство документ-основание прописывается в табличной части

Ну и? В чем проблема?


Signature
Личные бесплатные консультации не даю, для этого есть форум!

valera_avp Подменю пользователя
сообщение 26.04.13, 16:29
Сообщение #5

Общительный
**
Группа: Пользователи
Сообщений: 19
Из: Киев
Спасибо сказали: 0 раз
Рейтинг: 0

проблема в этом
Цитата(valera_avp @ 26.04.13, 15:57) *
но как выяснилось нумерация документов ведется в пределах года соответственно искать нужно по сочетанию номер дата


если убираю этот кусок

   |ГДЕ
            |    ЗаказНаПроизводствоПродукция.Заказ.Дата = &Дата
            |    И НалоговаяНакладная.Сделка.Дата = &Дата
            |    И РеализацияТоваровУслуг.Сделка.Дата = &Дата";
        Запрос.УстановитьПараметр("Дата", ЭтотОбъект.Дата);


все работает нормально, но выдает номера документов за весь период и соответственно номера повторяются

может подскажете варианты как отсеять все документы не текущего года создания\проведения


Signature
платформа 8.2.16 УПП 1.3

Vofka Подменю пользователя
сообщение 26.04.13, 16:33
Сообщение #6

У нас здесь своя атмосфера...
***********
Группа: Основатель
Сообщений: 13958
Из: Киев
Спасибо сказали: 4524 раз
Рейтинг: 3647.7

Может так?

        Запрос = Новый Запрос;
        Запрос.Текст =
            "ВЫБРАТЬ
            |    РеализацияТоваровУслуг.Сделка.Номер КАК СделкаНомер1,
            |    ЗаказНаПроизводствоПродукция.Заказ.Номер,
            |    НалоговаяНакладная.Сделка.Номер
            |ИЗ
            |    Документ.НалоговаяНакладная КАК НалоговаяНакладная
            |        ПОЛНОЕ СОЕДИНЕНИЕ Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг
            |            ПОЛНОЕ СОЕДИНЕНИЕ Документ.ЗаказНаПроизводство.Продукция КАК ЗаказНаПроизводствоПродукция
            |            ПО (ЗаказНаПроизводствоПродукция.Заказ.Номер = РеализацияТоваровУслуг.Сделка.Номер)
            |        ПО (РеализацияТоваровУслуг.Сделка.Номер = НалоговаяНакладная.Сделка.Номер)
            |ГДЕ
            |    ЗаказНаПроизводствоПродукция.Заказ.Дата < &Дата
            |    И НалоговаяНакладная.Сделка.Дата < &Дата
            |    И РеализацияТоваровУслуг.Сделка.Дата < &Дата";
        Запрос.УстановитьПараметр("Дата", НачалоГода(ЭтотОбъект.Дата));
        Выборка = Запрос.Выполнить().Выбрать();


ПС. особо не вникал в логику запроса

Сообщение отредактировал Vofka - 26.04.13, 16:34

valera_avp Подменю пользователя
сообщение 26.04.13, 16:44
Сообщение #7

Общительный
**
Группа: Пользователи
Сообщений: 19
Из: Киев
Спасибо сказали: 0 раз
Рейтинг: 0

Не совсем понял конструкцию
 |    И РеализацияТоваровУслуг.Сделка.Дата < &Дата";
        Запрос.УстановитьПараметр("Дата", НачалоГода(ЭтотОбъект.Дата));

но это неважно потому что все равно не работает why.gif


Signature
платформа 8.2.16 УПП 1.3

Petre Подменю пользователя
сообщение 26.04.13, 16:47
Сообщение #8

Живет на форуме
Иконка группы
Группа: Местный
Сообщений: 2907
Из: Київ, Україна
Спасибо сказали: 1148 раз
Рейтинг: 1230.2

Все что в "ГДЕ" надо перенести в секцию "ПО", иначе полное соединение превращается во внутреннее.


Signature
Допрацьовую:
- "Бухгалтерія для України 2.1";
- "Альфа-Авто: Автосалон+Автосервіс+Автозапчастини, українська версія".

valera_avp Подменю пользователя
сообщение 26.04.13, 17:12
Сообщение #9

Общительный
**
Группа: Пользователи
Сообщений: 19
Из: Киев
Спасибо сказали: 0 раз
Рейтинг: 0

Цитата(Petre @ 26.04.13, 16:47) *
Все что в "ГДЕ" надо перенести в секцию "ПО", иначе полное соединение превращается во внутреннее.

не совсем понял суть можно примерчик


Signature
платформа 8.2.16 УПП 1.3

logist Подменю пользователя
сообщение 26.04.13, 17:19
Сообщение #10

Про1С-ник
Иконка группы
Квалифицированный бухгалтерГений телепатии и социального моделированияЗа заслуги на форуме в 2010 годуМодератору Про1С (за заслуги в 2011 году)
Группа: Местный
Сообщений: 9564
Из: Kharkiv, UA
Спасибо сказали: 2536 раз
Рейтинг: 0

Ребята, я не пойму чего вы привязались к этим номерам? Завтра пойдет сбой номеров и документы не будут совпадать что тогда? Работайте с ДокументОснование.


Signature
Личные бесплатные консультации не даю, для этого есть форум!

Petre Подменю пользователя
сообщение 29.04.13, 8:14
Сообщение #11

Живет на форуме
Иконка группы
Группа: Местный
Сообщений: 2907
Из: Київ, Україна
Спасибо сказали: 1148 раз
Рейтинг: 1230.2

Цитата(valera_avp @ 26.04.13, 18:12) *
не совсем понял суть можно примерчик

Что-то типо того:
    Запрос = Новый Запрос;
    Запрос.Текст =
            "ВЫБРАТЬ
            |    РеализацияТоваровУслуг.Сделка.Номер КАК СделкаНомер1,
            |    ЗаказНаПроизводствоПродукция.Заказ.Номер,
            |    НалоговаяНакладная.Сделка.Номер
            |ИЗ
            |    Документ.НалоговаяНакладная КАК НалоговаяНакладная
            |        ПОЛНОЕ СОЕДИНЕНИЕ Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг
            |            ПОЛНОЕ СОЕДИНЕНИЕ Документ.ЗаказНаПроизводство.Продукция КАК ЗаказНаПроизводствоПродукция
            |            ПО (ЗаказНаПроизводствоПродукция.Заказ.Номер = РеализацияТоваровУслуг.Сделка.Номер)
            |                И (ЗаказНаПроизводствоПродукция.Заказ.Дата = &Дата)
            |                И (РеализацияТоваровУслуг.Сделка.Дата = &Дата)
            |        ПО (РеализацияТоваровУслуг.Сделка.Номер = НалоговаяНакладная.Сделка.Номер)
            |            И (РеализацияТоваровУслуг.Сделка.Дата = &Дата)
            |            И (НалоговаяНакладная.Сделка.Дата = &Дата)";
    Запрос.УстановитьПараметр("Дата", ЭтотОбъект.Дата);
    Выборка = Запрос.Выполнить().Выбрать();


Signature
Допрацьовую:
- "Бухгалтерія для України 2.1";
- "Альфа-Авто: Автосалон+Автосервіс+Автозапчастини, українська версія".

valera_avp Подменю пользователя
сообщение 29.04.13, 8:31
Сообщение #12

Общительный
**
Группа: Пользователи
Сообщений: 19
Из: Киев
Спасибо сказали: 0 раз
Рейтинг: 0

Я просто немогу понять что значит
Цитата(logist @ 26.04.13, 17:19) *
Работайте с ДокументОснование.

У меня есть документ РеализацияТоваровУслуг у которого в поле Сделка прописано что основанием для этого документа является ЗакакПопупателя, как мне при перепроведении ЗаказПокупателя проверить что на его основании создан документ РеализацияТоваровУслуг и запретить перепроведение документа ЗаказПокупателя!!!


Signature
платформа 8.2.16 УПП 1.3

logist Подменю пользователя
сообщение 29.04.13, 8:58
Сообщение #13

Про1С-ник
Иконка группы
Квалифицированный бухгалтерГений телепатии и социального моделированияЗа заслуги на форуме в 2010 годуМодератору Про1С (за заслуги в 2011 году)
Группа: Местный
Сообщений: 9564
Из: Kharkiv, UA
Спасибо сказали: 2536 раз
Рейтинг: 0

типа такого
// вставить в ОбработкаПроведения заказа
Запрос = Новый Запрос("ВЫБРАТЬ ПЕРВЫЕ 1
                      |    РеализацияТоваровУслуг.Ссылка
                      |ИЗ
                      |    Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг
                      |ГДЕ
                      |    РеализацияТоваровУслуг.Сделка = &ДокументОснование");
Запрос.УстановитьПараметр("ДокументОснование", Ссылка); // Это ссылка на заказ (т.е. текущий док)
Результат = Запрос.Выполнить();
Отказ = Не Результат.Пустой(); // если найдется хоть одна накладная - это вызовет отмену проведения.


Signature
Личные бесплатные консультации не даю, для этого есть форум!

Спасибо сказали: valera_avp,

valera_avp Подменю пользователя
сообщение 29.04.13, 11:51
Сообщение #14

Общительный
**
Группа: Пользователи
Сообщений: 19
Из: Киев
Спасибо сказали: 0 раз
Рейтинг: 0

Сделал ПОЧТИ так как советовал logist ПОЛУЧИЛОСЬ!!!!
Текст выкладывать небуду, потому что ну ОСЕНЬ СТРАШНЫЙ получился (раскритикуете в пух и прах)
Всем спасибо за участие!!!!


Signature
платформа 8.2.16 УПП 1.3

logist Подменю пользователя
сообщение 29.04.13, 12:46
Сообщение #15

Про1С-ник
Иконка группы
Квалифицированный бухгалтерГений телепатии и социального моделированияЗа заслуги на форуме в 2010 годуМодератору Про1С (за заслуги в 2011 году)
Группа: Местный
Сообщений: 9564
Из: Kharkiv, UA
Спасибо сказали: 2536 раз
Рейтинг: 0

Цитата(valera_avp @ 29.04.13, 11:51) *
(раскритикуете в пух и прах)

А почему Вы боитесь критики? Ведь вам укажут на ошибки, которые вы в будущем можете избежать.


Signature
Личные бесплатные консультации не даю, для этого есть форум!

Vofka Подменю пользователя
сообщение 29.04.13, 12:47
Сообщение #16

У нас здесь своя атмосфера...
***********
Группа: Основатель
Сообщений: 13958
Из: Киев
Спасибо сказали: 4524 раз
Рейтинг: 3647.7

logist, я на форуме когда-то уже выкладывал это:


logist Подменю пользователя
сообщение 29.04.13, 12:50
Сообщение #17

Про1С-ник
Иконка группы
Квалифицированный бухгалтерГений телепатии и социального моделированияЗа заслуги на форуме в 2010 годуМодератору Про1С (за заслуги в 2011 году)
Группа: Местный
Сообщений: 9564
Из: Kharkiv, UA
Спасибо сказали: 2536 раз
Рейтинг: 0

Цитата(Vofka @ 29.04.13, 12:47) *
я на форуме когда-то уже выкладывал это:

Это понятно, но ведь надо же подсказать человеку, что ничего страшного в этом нет. Тем более человек старается, что-то делает, а не приходит на форум с фразой "напишите мне код".


Signature
Личные бесплатные консультации не даю, для этого есть форум!

Спасибо сказали: valera_avp,

valera_avp Подменю пользователя
сообщение 29.04.13, 13:06
Сообщение #18

Общительный
**
Группа: Пользователи
Сообщений: 19
Из: Киев
Спасибо сказали: 0 раз
Рейтинг: 0

Ну как-то так
    Если РольДоступна("МенеджерПоПродажам1") Тогда        
        Запрос = Новый Запрос;
        Запрос.Текст =
            "ВЫБРАТЬ
            |    РеализацияТоваровУслуг.Ссылка,
            |    НалоговаяНакладная.Ссылка КАК Ссылка1,
            |    ЗаказНаПроизводствоПродукция.Ссылка КАК Ссылка2,
            |    ЗаказПокупателя.Ссылка КАК Ссылка3
            |ИЗ
            |    Документ.ЗаказПокупателя КАК ЗаказПокупателя
            |        ЛЕВОЕ СОЕДИНЕНИЕ Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг
            |        ПО (РеализацияТоваровУслуг.Сделка = ЗаказПокупателя.Ссылка)
            |        ЛЕВОЕ СОЕДИНЕНИЕ Документ.НалоговаяНакладная КАК НалоговаяНакладная
            |        ПО (НалоговаяНакладная.Сделка = ЗаказПокупателя.Ссылка)
            |        ЛЕВОЕ СОЕДИНЕНИЕ Документ.ЗаказНаПроизводство.Продукция КАК ЗаказНаПроизводствоПродукция
            |        ПО (ЗаказНаПроизводствоПродукция.Заказ = ЗаказПокупателя.Ссылка)
            |ГДЕ
            |    (ЗаказНаПроизводствоПродукция.Заказ = &Сделка
            |            ИЛИ НалоговаяНакладная.Сделка = &Сделка
            |            ИЛИ РеализацияТоваровУслуг.Сделка = &Сделка)";
        Запрос.УстановитьПараметр("Сделка",ЭтотОбъект.Ссылка);
        Выборка = Запрос.Выполнить().Выбрать();
        
        Если  Выборка.НайтиСледующий(ЭтотОбъект.Ссылка,"Ссылка3")
            Тогда Отказ = Истина;
            Сообщить("Документ является основанием для "
            + Выборка.Ссылка
            + Выборка.Ссылка1
            + Выборка.Ссылка2);
            Сообщить("Перепроведение документа ЗАПРЕЩЕНО!");
        КонецЕсли;
    КонецЕсли;

mamba.gif

logist спасибо за поддержку icon_beer17.gif


Signature
платформа 8.2.16 УПП 1.3

valera_avp Подменю пользователя
сообщение 29.04.13, 14:14
Сообщение #19

Общительный
**
Группа: Пользователи
Сообщений: 19
Из: Киев
Спасибо сказали: 0 раз
Рейтинг: 0

И что никто ничего не напишет. Где критика? Или я гений 32541510.gif


Signature
платформа 8.2.16 УПП 1.3

Ardi Подменю пользователя
сообщение 29.04.13, 18:17
Сообщение #20

Живет на форуме
***********
Гений телепатии и социального моделирования
Группа: Пользователи
Сообщений: 4121
Из: Киев
Спасибо сказали: 957 раз
Рейтинг: 0

1.
    Массив = Новый Массив;
    Массив.Добавить(ЭтотОбъект.Ссылка);
    
    ТабСсылок = НайтиПоСсылкам(Массив);
    Для Каждого Ссылка из ТабСсылок Цикл
        Сообщить ("" + СокрЛП(Ссылка[0]) + "  " + СокрЛП(Ссылка[1]));
    КонецЦикла;


2.
    ТекстЗапроса = 
                     "ВЫБРАТЬ
       |    НалоговаяНакладная.Ссылка
       |ИЗ
       |    Документ.НалоговаяНакладная КАК НалоговаяНакладная
       |ГДЕ
       |    НалоговаяНакладная.ДокументОснование = &Сделка
       |
       |ОБЪЕДИНИТЬ ВСЕ
       |
       |ВЫБРАТЬ
       |    РеализацияТоваровУслуг.Ссылка
       |ИЗ
       |    Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг
       |ГДЕ
       |    РеализацияТоваровУслуг.Сделка = &Сделка"


Сообщение отредактировал Ardi - 29.04.13, 18:19


Signature
Услуги 1С программиста 8.2, 7.7 (Плохо, дорого, очередь). Киев.

Не нашли ответа на свой вопрос?
Зарегистрируйтесь и задайте новый вопрос.


Ответить Новая тема
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

RSS Текстовая версия Сейчас: 21.06.24, 5:48
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!