Имя: Пароль:
1C
 
Поменять Реквизит Аванс с ДА на НЕТ в 700 док-ах, сделал обработку
0 Da D
 
20.03.17
08:20
Запрос = Новый Запрос;
    Запрос.Текст =  "ВЫБРАТЬ различные
    |    ПоступлениеНаСчет.Ссылка,
    |    ПоступлениеНаСчет.РасшифровкаПлатежа.(
    |        ПризнакАванса
    |    )
    |ИЗ
    |    Документ.ПоступлениеНаСчет КАК ПоступлениеНаСчет
    |ГДЕ
    |    ПоступлениеНаСчет.Проведен
    |    И ПоступлениеНаСчет.Дата МЕЖДУ &Дата1 И &Дата2
    |    И ПоступлениеНаСчет.РасшифровкаПлатежа.ПризнакАванса = ИСТИНА";
    Запрос.Параметры.Вставить("Дата1", Реквизит1.ДатаНачала);
    Запрос.Параметры.Вставить("Дата2", КонецДня(Реквизит1.ДатаОкончания));
    таблица = запрос.Выполнить().Выбрать();
    Пока таблица.Следующий() цикл
        
        запрос2 = Новый Запрос;  
        запрос2.Текст =  "ВЫБРАТЬ
        |    АктВыполненныхРабот.Ссылка
        |ИЗ
        |    Документ.АктВыполненныхРабот КАК АктВыполненныхРабот
        |ГДЕ
        |    АктВыполненныхРабот.Проведен
        |    И АктВыполненныхРабот.РаботыИУслуги.Сумма = &Сумма
        |    И АктВыполненныхРабот.Контрагент = &Контрагент
        |    И АктВыполненныхРабот.Дата МЕЖДУ &Дата1 И &Дата2";
        запрос2.Параметры.Вставить("Сумма",таблица.ссылка.СуммаДокумента);
        запрос2.Параметры.Вставить("Контрагент",таблица.ссылка.контрагент);
        Запрос2.Параметры.Вставить("Дата1", Реквизит1.ДатаНачала);
        Запрос2.Параметры.Вставить("Дата2", КонецДня(Реквизит1.ДатаОкончания));
        
        ТЗАктов=запрос2.выполнить().выгрузить();
        
        НужныйАкт=неопределено;
        Для каждого СтрТЗАктов из ТЗАктов цикл
            Запрос = Новый Запрос;
            Запрос.Текст = "ВЫБРАТЬ ПЕРВЫЕ 1
            |    ПоступлениеНаСчетРасшифровкаПлатежа.Ссылка
            |ИЗ
            |    Документ.ПоступлениеНаСчет.РасшифровкаПлатежа КАК ПоступлениеНаСчетРасшифровкаПлатежа
            |ГДЕ
            |    ПоступлениеНаСчетРасшифровкаПлатежа.Ссылка.Проведен
            |    И ПоступлениеНаСчетРасшифровкаПлатежа.Документ = &Акт
            |    И ПоступлениеНаСчетРасшифровкаПлатежа.Ссылка.Дата МЕЖДУ &Дата1 И &Дата2";
            //|И ПоступлениеНаСчет.Ссылка.ДокументОтгрузки =&Акт";
            запрос.установитьпараметр("Акт",СтрТЗАктов.Ссылка);
            Запрос.Параметры.Вставить("Дата1", Реквизит1.ДатаНачала);
            Запрос.Параметры.Вставить("Дата2", КонецДня(Реквизит1.ДатаОкончания));
            
            если запрос.выполнить().выгрузить().количество()>0 Тогда
                продолжить;
            иначе
                НужныйАкт=СтрТЗАктов.ссылка;
                прервать;
            конецесли
        КонецЦикла;
        если НужныйАкт <>неопределено тогда
            МоёПоступление=таблица.ссылка.получитьобъект();
            для каждого СтрТЧ из МоёПоступление.РасшифровкаПлатежа цикл        
                СтрТЧ.Документ=нужныйакт;
                СтрТЧ.ПризнакАванса = ложь;
            КонецЦикла;
            МоёПоступление.записать(режимзаписидокумента.проведение);
            Сообщить("Исправлен документ "+МоёПоступление.номер);
        иначе
            Сообщить("ошибка");
        конецесли
    КонецЦикла;
Скажите, что не так сделал?
Обработкой нахожу документ отгрузки по сумме равный документу, некоторые меняет, некоторые нет, что не так сделал?
Волшебник, хватит убивать мои ветки(
1 Da D
 
20.03.17
08:24
синтаксические ошибки исправлены, если что
2 Звездец
 
20.03.17
08:24
Запрос в цикле - это ужас
3 Da D
 
20.03.17
08:27
(2) ну мне на 1 раз же
4 Da D
 
20.03.17
08:29
Может обработка то и не нужна, я не знаю, подскажите )
5 vde69
 
20.03.17
08:52
а что не выходит?

опиши что ты хочешь услышать и сформулируй ВОПРОС
6 shamannk
 
20.03.17
08:54
Начни с проблемы.
7 novichok79
 
20.03.17
09:08
есть же универсальная обработка объектов, зачем писать обработку?
8 El_Duke
 
гуру
20.03.17
09:10
(7) +100500
Поиск и замена значений поможет, мастерить лисапед с квадратными колесами нет нужды

Или это тестовое задание при приеме на работу ?
9 Fish
 
20.03.17
09:12
10 Da D
 
20.03.17
09:16
Дак чтобы аванс поставить ДА нужно в указать документ отгрузки, обрабокта умеет подставлять документ отгрузки и смотреть сходится ли сумма ?
11 Da D
 
20.03.17
09:16
(9) и к чем тут это "кококо" ?:)
12 Ёпрст
 
20.03.17
09:20
(0)Всё можно сделать в одном запросе.
А так, такие конструкции таблица.ссылка.контрагент - это полный ПЭ при наличии запроса.
13 Da D
 
20.03.17
09:22
(12) Мне 1 раз это сделать нужно и всё
какая разница как я это сделал
мне нужно чтоб работало, а не универсальность
14 Da D
 
20.03.17
09:23
(10) т.е. чтоб поставить НЕТ
15 h-sp
 
20.03.17
09:53
(14) там поставь авто. Тогда не надо документ отгузки, она сама подряд будет всё закрывать. по ФИФО.
16 Мимохожий Однако
 
20.03.17
09:55
(13) Если у тебя работает, то зачем на форуме спрашивать?
17 Da D
 
20.03.17
10:15
(15) где там и что авто ?
18 h-sp
 
20.03.17
10:19
(17) ну там же должно быть порядок закрытия авансов. в ПоступлениеНаСчет
19 h-sp
 
20.03.17
10:19
а нет, в акте.
20 h-sp
 
20.03.17
10:22
у вас самописка что ли? нет там такого признака аванса в поступлении на счет.
Оптимист верит, что мы живем в лучшем из миров. Пессимист боится, что так оно и есть.