Имя: Пароль:
1C
1С v8
Конвертация данных
, ,
0 Wefast
 
21.07.15
10:39
Есть уже написанные правила(не мной) и есть список контрагентов которые нужно туда добавить. Я никак не разберусь.
Для документа "Перед выгрузкой"
Если Источник.ПометкаУдаления Тогда
    Отказ = Истина;
КонецЕсли;
Если НЕ Источник.Проведен Тогда
    Отказ = Истина;
КонецЕсли;

//Если Источник.Организация.Код   <> "00-000001" Тогда  //выгрузка по Анютино
//   Отказ = Истина;
//КонецЕсли;

Если Источник.Организация.Код   <> "00-000002" Тогда  //выгрузка по Мелиоратору
    Отказ = Истина;
КонецЕсли;

//Если Источник.Организация.Код   = "00-000001" Тогда
//    Если Источник.Контрагент.Код <> "00182    "
//        И Источник.Контрагент.Код <> "00760    "
//        И Источник.Контрагент.Код <> "00100    "  Тогда
//         Отказ = Истина;
//    КонецЕсли;
//КонецЕсли;

Если Источник.Организация.Код   = "00-000002" Тогда  //это МЕЛИОРАТОР
    Если  Источник.Контрагент.Код <> "00822    "   //  квасниковское
        И Источник.Контрагент.Код <> "00357    "  //  дегтярева
        И Источник.Контрагент.Код <> "000000032"  //  донских
        И Источник.Контрагент.Код <> "00081    "  //  кабисова
        И Источник.Контрагент.Код <> "00874    "  //  мурушкин
        И Источник.Контрагент.Код <> "00456    "  //  неустроева
        И Источник.Контрагент.Код <> "00488    "  //  соловьева
        И Источник.Контрагент.Код <> "00578    "  //  халилова
        И Источник.Контрагент.Код <> "00938    "  //  шатская
        И Источник.Контрагент.Код <> "00370    "  //  шевчук
        И Источник.Контрагент.Код <> "00905    "  //  моу сош №3
        И Источник.Контрагент.Код <> "00288    "  //  добро
        И Источник.Контрагент.Код <> "ФР-000111"  //   ковчег-с
        И Источник.Контрагент.Код <> "00479    "  //   наш магазин
        И Источник.Контрагент.Код <> "00934    "  //   пекарь
        И Источник.Контрагент.Код <> "00881    "   //  элион
        И Источник.Контрагент.Код <> "ФР-000040"   //  никонова
        И Источник.Контрагент.Код <> "00895    "   // эллада
        И Источник.Контрагент.Код <> "ФР-000306"   //Рациональ
        //И Источник.Контрагент.Код <> "01082    "   //никонова
        //И Источник.Контрагент.Код <> "01031    "   //ковчег-с
        И Источник.Контрагент.Код <> "ФР-000061"   //рэм
        И Источник.Контрагент.Код <> "00706    " //ип гутник
        И Источник.Контрагент.Код   <> "00587    " //ДС № 10
        И Источник.Контрагент.Код   <> "ФР-000340" // ООО "БКМ-Торг"
        //И Источник.Контрагент.Код   <> "ФР-000373" //   ип дощан
        И Источник.Контрагент.Код   <> "ФР-000375" // ип бадалов
        И Источник.Контрагент.Код   <> "ФР-000392" // ДС малышок
        И Источник.Контрагент.Код   <> "ФР-000395" // ДС ТОПОЛЕК
        И Источник.Контрагент.Код   <> "ФР-000029" // магазин ШАНС
        И Источник.Контрагент.Код   <> "ФР-000401" // сгау
        И Источник.Контрагент.Код   <> "ФР-000439" // МОУ-ООШ с. Георгиевка
        И Источник.Контрагент.Код   <> "ФР-000433" //МОУ СОШ № 3  г.Маркс(д/с №1 и №8)
        И Источник.Контрагент.Код   <> "ФР-000414" //ГАУ "Подлесновский дом-интернат"
        И Источник.Контрагент.Код   <> "ФР-000418" //МДОУ - детский сад № 6 г.Маркс
        И Источник.Контрагент.Код   <> "ФР-000442" //МДОУ - детский сад п. Колос
        И Источник.Контрагент.Код   <> "ФР-000449" //МДОУ - детский сад с. Бобровка
        И Источник.Контрагент.Код   <> "ФР-000448" //МДОУ - детский сад с. Бородаевка
        И Источник.Контрагент.Код   <> "ФР-000447" //МДОУ - детский сад с. Водопьяновка
        И Источник.Контрагент.Код   <> "ФР-000446" //МДОУ - детский сад с. Зоркино
        И Источник.Контрагент.Код   <> "ФР-000451" //МДОУ - детский сад с. Каменка
        И Источник.Контрагент.Код   <> "ФР-000445" //МДОУ - детский сад с. Караман
        И Источник.Контрагент.Код   <> "ФР-000450" //МДОУ - детский сад с. Кировское
        И Источник.Контрагент.Код   <> "ФР-000459" //МДОУ - детский сад с. Липовка
        И Источник.Контрагент.Код   <> "ФР-000444" //МДОУ - детский сад с. Полековское
        И Источник.Контрагент.Код   <> "ФР-000443" //МДОУ - детский сад с. Раскатово
        И Источник.Контрагент.Код   <> "ФР-000455" //МОУ - ООШ с. Бородаевка
        И Источник.Контрагент.Код   <> "ФР-000458" //МОУ - ООШ с. Вознесенка
        И Источник.Контрагент.Код   <> "ФР-000460" //МОУ - ООШ с. Вознесенка(дошкольное)
        И Источник.Контрагент.Код   <> "ФР-000456" //МОУ - СОШ с. Зоркино
        И Источник.Контрагент.Код   <> "ФР-000457" //МОУ - СОШ с. Липовка
        И Источник.Контрагент.Код   <> "ФР-000453" //МОУ - СОШ с. Фурманово
        И Источник.Контрагент.Код   <> "000000539" //ОГУ "Марксовская райСББЖ"
        
        Тогда
        
        Отказ = Истина;
    КонецЕсли;
КонецЕсли;

После загрузки:

Объект.Дата = КонецДня(Объект.Дата);

Если Объект.Организация.Код = "000000003" Тогда  //Анютино
    Объект.Склад = Справочники.Склады.НайтиПоКоду("000000070");
Иначе //Мелиоратор
    Объект.Склад = Справочники.Склады.НайтиПоКоду("000000060");
КонецЕсли;

Если Объект.Контрагент.Инн = "6452071939" Тогда
    Объект.Контрагент = Справочники.Контрагенты.НайтиПоКоду("00100    ");
КонецЕсли;

Если Объект.Контрагент.Инн = "643901737703" Тогда   //неустроева
    Объект.Контрагент = Справочники.Контрагенты.НайтиПоКоду("00456    ");
КонецЕсли;

Если Объект.Контрагент.Инн = "643909554324" Тогда   //ип соловьева
    Объект.Контрагент = Справочники.Контрагенты.НайтиПоКоду("00488    ");
КонецЕсли;

//Если Объект.Контрагент.Инн = "643909554324" Тогда   //ип соловьева
//    Объект.Контрагент = Справочники.Контрагенты.НайтиПоКоду("00488    ");
//КонецЕсли;


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

Запрос.УстановитьПараметр("Владелец", Объект.Контрагент);
Запрос.УстановитьПараметр("ВидДоговора", Перечисления.ВидыДоговоровКонтрагентов.СПокупателем);
Запрос.УстановитьПараметр("Организация", Объект.Организация);
Выборка = Запрос.Выполнить().Выбрать();

Если Выборка.Следующий() Тогда
    Объект.ДоговорКонтрагента = Выборка.Ссылка;    
Иначе
    Сообщить("Для контрагента " + Объект.Контрагент + " не установлен основной договор по организации " + Объект.Организация);
КонецЕсли;    


Объект.СчетУчетаРасчетовСКонтрагентом = ПланыСчетов.Хозрасчетный.НайтиПоКоду("62.01");
Объект.СчетУчетаРасчетовПоАвансам = ПланыСчетов.Хозрасчетный.НайтиПоКоду("62.02");

Для Каждого СтрТЧ Из Объект.Товары Цикл
    
    Если Объект.Организация.Код = "000000003" Тогда  //Анютино
        СтрТЧ.СчетУчета = ПланыСчетов.Хозрасчетный.НайтиПоКоду("41.01");
        СтрТЧ.Субконто = Справочники.НоменклатурныеГруппы.НайтиПоКоду("000000028");
        
        СтрТЧ.СчетДоходов = ПланыСчетов.Хозрасчетный.НайтиПоКоду("90.01.1");
        СтрТЧ.СчетРасходов = ПланыСчетов.Хозрасчетный.НайтиПоКоду("90.02.1");
        СтрТЧ.СчетУчетаНДСПоРеализации = ПланыСчетов.Хозрасчетный.НайтиПоКоду("90.03.1");
        
    Иначе      //Мелиоратор
        СтрТЧ.СчетУчета = ПланыСчетов.Хозрасчетный.НайтиПоКоду("43");
        СтрТЧ.Субконто = Справочники.НоменклатурныеГруппы.НайтиПоКоду("000000008");
        
        СтрТЧ.СчетДоходов = ПланыСчетов.Хозрасчетный.НайтиПоКоду("90.01.3");
        СтрТЧ.СчетРасходов = ПланыСчетов.Хозрасчетный.НайтиПоКоду("90.02.3");
        СтрТЧ.СчетУчетаНДСПоРеализации = ПланыСчетов.Хозрасчетный.НайтиПоКоду("90.03.3");
        
    КонецЕсли;
    
КонецЦикла;    

Выполнить(Алгоритмы.ПровестиДокумент);
1 Wefast
 
21.07.15
10:41
Может мне кто нибудь объяснить что тут происходит?

Вот у меня есть список контрагентов(код, инн) который сейчас не выгружается, а должен.

Добавил я их в условие Перед выгрузкой и ничего не изменилось.
2 Wefast
 
21.07.15
10:56
Как я понимаю из условия в Перед выгрузкой нужно удалить строки с контрагентом из предоставленного мне списка. Но совпадений нет.
3 ixijixi
 
21.07.15
10:58
Отказ = Истина; означает, что объект выгружен не будет. Закомментируй и попробуй.
4 Naumov
 
21.07.15
11:09
(2) Наоборот добавить код нужного для выгрузки контра.
5 Дейл
 
21.07.15
11:11
и помести список кодов в список значения или тебе не платят за количество строчек
6 Wefast
 
21.07.15
11:33
(4) В смысле? Там сейчас условие такое что если контрагент в него попадает то Отказ = истина, т.о он не выгружается. Разве нет? Я о том что так то они все выгружаются, кроме этого списка в условии.

(5) Мне незачем что то исправлять, человек который эти правила обычно правит и делал сейчас в отпуске.
7 Wefast
 
21.07.15
11:35
А в После выгрузки что происходит?
8 Альбатрос
 
21.07.15
11:38
(6) Предлагаю завести у контрагентов галочку "Выгружать" и в Перед выгрузкой написать:
Если НЕ Источник.Контрагент.выгружать тогда
Отказ = Истина;
КонецЕсли;
9 Naumov
 
21.07.15
11:38
(6) Учитесь читать условия.
10 Альбатрос
 
21.07.15
11:40
Вообще жесть конечно лютая...
11 ixijixi
 
21.07.15
11:42
(8) Ты чего?! Это вообще все настраивается отборами в форме выгрузки, ни строчки кода, ни изменений конфы не требуется!
12 Альбатрос
 
21.07.15
11:44
(11) Автор не пояснил, как именно проходит выгрузка.
13 ixijixi
 
21.07.15
11:45
(12) Да как бы не происходила =))
14 Альбатрос
 
21.07.15
11:48
(13) И как в обмене по плану обмена настроить отбор?
15 ixijixi
 
21.07.15
11:49
(14) Упс) Про ПО я не вспомнил))
16 Night_Wolf
 
21.07.15
12:00
Просто добавить чтобы, я бы так сделал:

Если Источник.Контрагент.Код <> "00822" //  квасниковское
Каменка
...
И Источник.Контрагент.Код   <> "000000539"//ОГУ Марксовская райСББЖ"

// Тут добавляем свой код
И Источник.Контрагент.Код <> "Код первого контрагента"      
И Источник.Контрагент.Код <> "Код второго контрагента"      

        Тогда
        
        Отказ = Истина;
    КонецЕсли;

P/S - а вообще код дикий.
17 Wefast
 
21.07.15
15:14
(4) Точно, ступил, Если он контрагент в этом списке то на отказ условие не идет.
(16) Я так сразу и добавил. Ничего, что нужно, не выгрузилось сказал мне заказчик.

В общем есть подозрения что я в Код подставил вместо "000    " просто "000"
18 Новиков
 
21.07.15
15:23
Читая эти правила конвертации, на ум приходит только фраза: "поднять бы Сталина..."(с)
19 ixijixi
 
21.07.15
15:47
(17) СокрЛП решает
20 Wefast
 
21.07.15
16:00
(18) А что в них не так, выглядит вроде логично. И как я понял этот список контрагентов постоянно меняется. Там несколько документов с такими же правилами.
21 Новиков
 
21.07.15
16:10
(20) логично как-то в источнике в настройках как-то: в параметрах КД, в РС ли в источнике, или как тебе подсказали - галкой в контрагентах - что выгружать, а что нет. Вот это правда логично. А эта портянища - показатель мастерства Мастера :)
Программист всегда исправляет последнюю ошибку.