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

Хранилище

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

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

2 страниц V   1 2 >

>  Ошибка получения значения свойства подчиненного объекта (по имени приемника Код сообщения 17). Поле объекта не обнаружено (ДДС)
svetas_l
Отправлено: 13.01.19, 13:13


Общительный
**

Группа: Пользователи
Сообщений: 29
Регистрация: 23.12.18
Пользователь №: 63555


svetas_l @ 08.01.19, 10:00 * ,
разобрался, тему можно закрыть .
Всем спасибо..
  Форум: Конфигурация "1С:Конвертация данных" · Просмотр сообщения: #148882 · Ответов: 1 · Просмотров: 148
 

>  выгрузка в УПП через Конвертацию "Проведение документа: Платежное поручение исходящее Не совпадают сумма документа и ее расшифровка"
svetas_l
Отправлено: 13.01.19, 13:11


Общительный
**

Группа: Пользователи
Сообщений: 29
Регистрация: 23.12.18
Пользователь №: 63555


Vofka @ 03.01.19, 9:05 * ,
если убрать проверку, тогда тупо пишет "не заполнено поле сумма документа" но уже во всех документах, так лучше уже с ошибкой но в некоторых документах , чем без проверки и тупо с нерабочими всеми документами....
  Форум: Конфигурация "1С:Конвертация данных" · Просмотр сообщения: #148881 · Ответов: 15 · Просмотров: 290
 

>  Где взять консоль запросов по Бухгалтеия для Украины 2.0, чтобы запускался конструктор
svetas_l
Отправлено: 09.01.19, 14:37


Общительный
**

Группа: Пользователи
Сообщений: 29
Регистрация: 23.12.18
Пользователь №: 63555


Добрый День! Где взять консоль запросов по Бухгалтеия для Украины 2.0, чтобы запускался конструктор?
Не запускается коструктор запроса в консоли,хотя открываю через клиент
  Форум: Программирование в 1С Предприятие 8.3 · Просмотр сообщения: #148789 · Ответов: 2 · Просмотров: 118
 

>  Ошибка получения значения свойства подчиненного объекта (по имени приемника Код сообщения 17). Поле объекта не обнаружено (ДДС)
svetas_l
Отправлено: 08.01.19, 10:00


Общительный
**

Группа: Пользователи
Сообщений: 29
Регистрация: 23.12.18
Пользователь №: 63555


Добрый день! Кто знает "Ошибка получения значения свойства подчиненного объекта (по имени приемника Код сообщения 17). Поле объекта не обнаружено (ДДС)"




Кто-то может объяснить, поля вроде бы все на месте.

svetas_l @ Сегодня, 9:53 * ,
  Форум: Конфигурация "1С:Конвертация данных" · Просмотр сообщения: #148760 · Ответов: 1 · Просмотров: 148
 

>  Функция(алгоритм) определения максимально подобного слова заданному из массива подобных слов
svetas_l
Отправлено: 07.01.19, 16:11


Общительный
**

Группа: Пользователи
Сообщений: 29
Регистрация: 23.12.18
Пользователь №: 63555


Добрый День!
Кто-то знает где можно найти функцию (алгоритм) определения максимально подобного слова заданному из массива подобных слов, задача описана тут, последний актуальный код тут
  Форум: Программирование обычных форм 1С 8.2 и не интер... · Просмотр сообщения: #148738 · Ответов: 2 · Просмотров: 139
 

>  как функцию вставить в алгоритмы
svetas_l
Отправлено: 07.01.19, 13:34


Общительный
**

Группа: Пользователи
Сообщений: 29
Регистрация: 23.12.18
Пользователь №: 63555


почитала статью Тут
непонятно как они так лихо переходят от параметра структуры в массив параметров "ВыборкаДанныхПоСкладу" , если изначально "ПараметрыАлгоритмов" есть структура данных, а не массив структуры?
Как это?
Попробовала примерить на свои функции нечеткого поиска:
//для справки у меня в конфигурации приёмнике
два справочника Номенклатуры : Номенклатура () - который ведёт пользователь кладовщик и ей заполняет ТребованиеНакладная, и Номенклатура_бух, который выгружается вместе с СчетНаОплатуПоставщика из бухгалтерии, но СчетНаОплатуПоставщика в табличной части содержит и поле "Номенклатура" и "Номенклатура_бух", сам счет заносит запись в регистр сведений "Номенлатура_Сопоставление" по событию проведение. Нужно чтобы в момент выгрузки счета Номенклатура_бух сама находила подобную номенклатуру из Номенклатура (справочник который ведёт кладовщик)
Сопоставлять думаю в момент загрузки элемента Номенклатуры, который выгружается вместе с документами СчетНаОплатуПоставщика в базу приёмник в справочник Номенклатура_бух.
Но тут пока чего-то не хватает, нужно сразу из найденного массива выбрать наиболее подходящий элемент и ставить его в СчетНаОплатуПоставщика в поле "Номенклатура", напротив значения выгружаемого поля "Номенклатура_бух".
К сожалению, я только начала изучать "1С:Конвертация данных 2.1". Может кто-то может подсказать как оптимальнее это сделать? заранее спасибо.


//Функция_поиска
 
Номенклатура = Новый Структура;
Наименование_бух=Параметры.ПараметрыАлгоритмов["Строка_Номенклатуры"];
                                                

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

            Выборка0 = Запрос.Выполнить().Выбрать();
         если Выборка0.Количество()=0 тогда
            //если элемента ещё нет в таблице сопоставления, и мы не знаем что это
            
            
            
           Параметры.ПараметрыАлгоритмов.Вставить("Строка_Номенклатуры",Наименование_бух);
          
          
            Параметры.ПараметрыАлгоритмов.Вставить("Наименов_кор_руск",Неопределено);
            Параметры.ПараметрыАлгоритмов.Вставить("Вид_номенклатуры",Неопределено);
            Параметры.ПараметрыАлгоритмов.Вставить("Маркеровка_производ",Неопределено);
            Параметры.ПараметрыАлгоритмов.Вставить("Размер",Неопределено);

          
           Выполнить(Алгоритмы.ФункцияПреобразованияНоменклатуры); //разложим элемент на значимые части
          
            Номенклатура.Вставить("Наименов_кор_руск",Параметры.ПараметрыАлгоритмов["Наименов_кор_руск"]);        
            Номенклатура.Вставить("Вид_номенклатуры",Параметры.ПараметрыАлгоритмов["Вид_номенклатуры"]);
            Номенклатура.Вставить("Маркеровка_производ", Параметры.ПараметрыАлгоритмов["Маркеровка_производ"]);
            Номенклатура.Вставить("Размер", Параметры.ПараметрыАлгоритмов["Размер"]);

            Запрос = Новый Запрос;                              
            Запрос.УстановитьПараметр("Наименов_кор_руск","%" + Номенклатура.Наименов_кор_руск+ "%");      //поищем элемент значимыми частями
            Запрос.УстановитьПараметр("Вид_номенклатуры","%" + Номенклатура.Вид_номенклатуры+ "%");      //поищем элемент значимыми частями
            Запрос.УстановитьПараметр("Маркеровка","%" + Номенклатура.Маркеровка_производ+ "%");       //поищем элемент значимыми частями
            Запрос.УстановитьПараметр("Размер","%" + Номенклатура.Размер+ "%");   //поищем элемент значимыми частями

            Запрос.Текст =
            "ВЫБРАТЬ
            |Номенклатура.Наименование КАК Наименование,
            |Номенклатура.Родитель.Наименование КАК РодительНаименование
            |ИЗ
            |Справочник.Номенклатура КАК Номенклатура
            |ГДЕ
            |   Номенклатура.Наименов_кор_руск ПОДОБНО &Наименов_кор_руск
            | И Номенклатура.Размер  ПОДОБНО &Размер
            | И Номенклатура.Маркеровка_производ  ПОДОБНО &Маркеровка
            | И Номенклатура.Вид_номенклатуры  ПОДОБНО &Вид_номенклатуры
            |";

            Выборка = Запрос.Выполнить().Выбрать();
          
            если Выборка.Количество()>0 тогда
                Пока Выборка.Следующий() Цикл
                     НоменклатурныйЭлемент.Вставить("Родитель", СокрЛП(Выборка.РодительНаименование));
                     НоменклатурныйЭлемент.Вставить("Наименование",СокрЛП(Выборка.Наименование));
                    //формируешь массив найденных элементов, подобных частями

                     ВыходнойМассив.Добавить(НоменклатурныйЭлемент);
                КонецЦикла;
             конецесли;

         иначеесли Выборка0.Количество()>0 тогда     //если элемент уже есть в таблице сопоставления
                Пока Выборка0.Следующий() Цикл
                    //сверяешь маркировку и размер среди найденных  в таблице соотвествий
                    
                     НоменклатурныйЭлемент.Вставить("Родитель", СокрЛП(Выборка0.РодительНаименование));
                     НоменклатурныйЭлемент.Вставить("Наименование",СокрЛП(Выборка0.Наименование));
                     ВыходнойМассив.Добавить(НоменклатурныйЭлемент);

                                      
                КонецЦикла;
             конецесли;
                
             Параметры.спЗначений_номенклатуры.ЗагрузитьЗначения(ВыходнойМассив);

//ФункцияПреобразованияНоменклатуры
    Строка_Номенклатуры=Параметры.ПараметрыАлгоритмов["Строка_Номенклатуры"];
    
    RegExp = Новый COMОбъект("VBScript.RegExp");// создаем объект для работы с регулярными
    RegExp.MultiLine = ложь;  // истина — текст многострочный, ложь — одна строка
    RegExp.Global = Истина;     // истина — поиск по всей строке, ложь — до первого совпадения
    RegExp.IgnoreCase = Истина; // истина — игнорировать регистр строки при поиске
    Разделитель=" ";
    RegExp.Pattern = "[^\" + Разделитель + "]+";
    Matches = RegExp.Execute(Строка_Номенклатуры);

    ВидНоменкл="";
    Маркер="";
    
    НоменклатурныйЭлемент = Новый Структура;
    // пара ключ (имя переменной) - значение (произв. типа)
    
    
          
         //выделяем размер -параметры числовые      
    СтрокаЧисел = "";
         Для Индекс = 1 По СтрДлина(Строка_Номенклатуры) Цикл
            Символ = Сред((Строка_Номенклатуры), Индекс, 1); // Перебираем все сиволы из нашей строки
            Если ((КодСимвола(Символ) >= 42 И КодСимвола(Символ) <= 59) или   (КодСимвола(Символ)=92)или   (КодСимвола(Символ)=1093)или (КодСимвола(Символ)=32)) Тогда // Код нуля - 48, код 9-ки - 57
                Если (СтрДлина(СтрокаЧисел) = 0) и ((КодСимвола(Символ) >= 48 И КодСимвола(Символ) <= 57)) тогда
                    СтрокаЧисел = СтрокаЧисел + Символ;
                иначеесли (СтрДлина(СтрокаЧисел)> 0)    тогда
                    СтрокаЧисел = СтрокаЧисел + Символ;
                конецесли;      
             КонецЕсли;
          КонецЦикла;
        kk= СтрДлина(СтрокаЧисел);
        Пока   kk >= 0 Цикл
           Символ = Сред((СтрокаЧисел), kk, 1); // Перебираем все сив
             если ((КодСимвола(Символ) >= 48 И КодСимвола(Символ) <= 57)) тогда
                 прервать
             конецесли;
        kk = kk - 1;
       КонецЦикла;
       Если СтрДлина(СтрокаЧисел) > 0 Тогда
             НоменклатурныйЭлемент.Вставить("Размер", Лев(СокрЛП(СтрокаЧисел), kk));
       КонецЕсли;
        СтрокаЧисел = "";

          
       Для Сч = 0 По Matches.Count()-1 Цикл
        
           Если Сч=0 Тогда
                  
                   НоменклатурныйЭлемент.Вставить("Наименов_кор_руск",(Matches.Item(Сч).Value));

            Иначе
                 СтрокаМаркировки = "";    
                  СтрокаЧис  = "";
                  Символ2 =  "";
                  Индекс1 = 0;
                  Для Индекс1 = 1 По СтрДлина(Matches.Item(Сч).Value) Цикл
                      Символ2 = Сред((Matches.Item(Сч).Value), Индекс1, 1); // Перебираем все сиволы из нашей строки
                      Если      (КодСимвола(Символ2) >= 48 И КодСимвола(Символ2) <= 57) тогда      //не содержит цифр
                                  СтрокаЧис=  СтрокаЧис  + Символ2;

                      иначеЕсли      ((КодСимвола(Символ2) >= 65 И КодСимвола(Символ2) <= 90)      //англ рег
                             или   (КодСимвола(Символ2) >= 97 И КодСимвола(Символ2) <= 122)      //англ м
                             или   (КодСимвола(Символ2) >= 1040 И КодСимвола(Символ2) <= 1071)      //руск рег
                                             ) тогда        //руск рег
                                 СтрокаМаркировки = СтрокаМаркировки  + Символ2;
                      конецесли;      
                      
                  КонецЦикла;//по символьный цикл разбора слова
                  
                  Если СтрДлина(СтрокаМаркировки) >= 1 Тогда
                              Маркер= Маркер+" "+СокрЛП(СтрЗаменить(Matches.Item(Сч).Value,НоменклатурныйЭлемент.Размер,""));
                  ИначеЕсли (СтрДлина(СтрокаЧис) = 0) и (СтрДлина(СтрокаМаркировки) = 0) Тогда
                        если   СтрДлина(СокрЛП(Matches.Item(Сч).Value)) >=1 тогда
                             ВидНоменкл=ВидНоменкл+" "+СокрЛП(СтрЗаменить(Matches.Item(Сч).Value,НоменклатурныйЭлемент.Размер,""));
                        конецесли;
                          
                  КонецЕсли;
               КонецЕсли;
          
                  
          
          
       КонецЦикла;
      
             НоменклатурныйЭлемент.Вставить("Вид_номенклатуры", СокрЛП(ВидНоменкл));
             НоменклатурныйЭлемент.Вставить("Маркеровка_производ",СокрЛП(Маркер));

            
    //Возврат НоменклатурныйЭлемент;
   Параметры.ПараметрыАлгоритмов.Вставить("Наименов_кор_руск", НоменклатурныйЭлемент.Наименов_кор_руск);
   Параметры.ПараметрыАлгоритмов.Вставить("Вид_номенклатуры", НоменклатурныйЭлемент.Вид_номенклатуры);
   Параметры.ПараметрыАлгоритмов.Вставить("Маркеровка_производ", НоменклатурныйЭлемент.Маркеровка_производ);
   Параметры.ПараметрыАлгоритмов.Вставить("Размер", НоменклатурныйЭлемент.Размер);
  Форум: Конфигурация "1С:Конвертация данных" · Просмотр сообщения: #148733 · Ответов: 2 · Просмотров: 141
 

>  как добавлять документы в структуру подчинённости документа УПП 8.2
svetas_l
Отправлено: 07.01.19, 8:36


Общительный
**

Группа: Пользователи
Сообщений: 29
Регистрация: 23.12.18
Пользователь №: 63555


Добрый День! Кто-то знает как добавлять документы в структуру подчинённости документа УПП 8.2 (как обратиться , через какое свойство в коде, как добавить новый документ, как получить содержание существующей структуры)?
  Форум: Программирование обычных форм 1С 8.2 и не интер... · Просмотр сообщения: #148731 · Ответов: 1 · Просмотров: 97
 

>  обращение к элементам РасшифровкаПлатежа ПлатежноеПоручениеИсходящее УПП 8.2
svetas_l
Отправлено: 06.01.19, 22:37


Общительный
**

Группа: Пользователи
Сообщений: 29
Регистрация: 23.12.18
Пользователь №: 63555


Добрый день!
Кто-то обращался к элементам РасшифровкаПлатежа из ПлатежноеПоручениеИсходящее.
Делаю платежное поручение исходящее, на основании счета оплаты поставщику,
1. в структуру подчинённости документа, платежное поручение заносится после счета.
Пытаюсь в конец процедуры проведения платежного поручения добавить движения по доп. регистру.
Само проведение отрабатывает, все нормально, ничто не ругается, все проводится.
Но, захожу в отладчике проверить свой код, и вижу:
1. в отладчике реквизит табличной части "расшифровка платежа" "сделка", почему-то не определён (хотя в структуру подчинённости документа, платежное поручение заносится после счета)
2. в отладчике со строки "если РасшифровкаПлатежа.Количество()>0 тогда" уходит в бесконечный цикл - виснет и не отвечает , хотя показывает в "Табло" что "РасшифровкаПлатежа.Количество()" =1 и сделка почему-то не определён.
В результате после точки останова на "если РасшифровкаПлатежа.Количество()>0 тогда" виснет полностью в процессе отладки , но без процесса отладки никаких ошибок не выдает и все проводится без ошибок.

Задача "достать свойство "сделка" документа ПлатежноеПоручениеИсходящее, через данную ссылку обратится к "счету поставщика", и вернуть из табличной части Счета Поставщика поле Номенклатура, в движение данного регистра" Но вылетает в процессе отладки, при этом ошибок без процесса отладки не даёт.
Прошу помощи, что неправильно в приведенном коде, чтобы не вылетало:

Структура = Новый Структура("Сделка", NULL);
    
Движения.Маржа_Объектов.Очистить();
если РасшифровкаПлатежа.Количество()>0 тогда
   Для Каждого ТекСтрокапроводки Из РасшифровкаПлатежа Цикл
        если        (ПустаяСтрока(ЭтотОбъект.Объект)=ложь) тогда    
                          
              
                ЗаполнитьЗначенияСвойств(Структура, Объект);
              
                   Если Структура.Сделка <> NULL тогда
                   Объект =  ТекСтрокапроводки.Сделка.ПолучитьОбъект();

                   если  ТипЗнч(ТекСтрокапроводки.Сделка) = Тип("ДокументСсылка.СчетНаОплатуПоставщика") тогда
                        если ((Объект.Товары.Количество()>0)и ((ТекСтрокапроводки.Тип_номенклатуры=Перечисления.Тип_номенклатуры.Материалы) или (ЭтотОбъект.Тип_номенклатуры=Перечисления.Тип_номенклатуры.Материалы))) тогда
                            Для Каждого ТекСтрокапроводки2 Из Объект.Товары Цикл
                                
                                
                                /////
                                  Движение = Движения.Маржа_Объектов.Добавить();
                                  Движение.Период=Этотобъект.Дата;
                                  Движение.Регистратор = Ссылка;
                                  Движение.ВидДвижения = ВидДвиженияНакопления.Расход;
                                  Движение.Вид_документа=Справочники.Вид_документа.НайтиПоНаименованию("ПлатежноеПоручениеИсходящее");
              
              
              
                                  если        (ПустаяСтрока(ТекСтрокапроводки.Тип_номенклатуры)=ложь) тогда
                  
                                    если (ТекСтрокапроводки.Тип_номенклатуры=Перечисления.Тип_номенклатуры.Услуги) тогда
                                      Движение.Статья_плана = Справочники.Статьи_плана.НайтиПоНаименованию("Услуги сторонних организаций");
                                      Движение.Сумма= ТекСтрокапроводки.СуммаПлатежа;
                                      Движение.Сумма_опл= ТекСтрокапроводки.СуммаПлатежа;
                                    иначеесли (ТекСтрокапроводки.Тип_номенклатуры=Перечисления.Тип_номенклатуры.Материалы)    тогда
                                      Движение.Статья_плана = Справочники.Статьи_плана.НайтиПоНаименованию("Оборудование и материалы");
                                      Движение.Сумма_опл=ТекСтрокапроводки.СуммаПлатежа;
                                    конецесли;    
                  
                                 иначе
                                    если (ЭтотОбъект.Тип_номенклатуры=Перечисления.Тип_номенклатуры.Услуги) тогда
                                      Движение.Статья_плана = Справочники.Статьи_плана.НайтиПоНаименованию("Услуги сторонних организаций");
                                      Движение.Сумма= ТекСтрокапроводки.СуммаПлатежа;
                                      Движение.Сумма_опл= ТекСтрокапроводки.СуммаПлатежа;
                                   иначеесли (ЭтотОбъект.Тип_номенклатуры=Перечисления.Тип_номенклатуры.Материалы)    тогда
                                      Движение.Статья_плана = Справочники.Статьи_плана.НайтиПоНаименованию("Оборудование и материалы");
                                      Движение.Сумма_опл=ТекСтрокапроводки.СуммаПлатежа;
                                   конецесли;    

                                 конецесли;    
              
                                  если        (ПустаяСтрока(ТекСтрокапроводки.ДДС)=ложь) тогда  
                                          Движение.ДДС_расхода=ТекСтрокапроводки.ДДС;
                                  иначе   Движение.ДДС_расхода=ЭтотОбъект.ДДС;
                                  конецесли;    
                                  если    (ПустаяСтрока(ТекСтрокапроводки.Объект)=ложь) тогда  
                                         Движение.Объект=ТекСтрокапроводки.Объект;
                                  иначе  Движение.Объект=ЭтотОбъект.Объект;
                                  конецесли;    
                                  если    (ПустаяСтрока(ТекСтрокапроводки.Участок)=ложь) тогда  
                                         Движение.Участок=ТекСтрокапроводки.Участок;
                                  иначе  Движение.Участок=ЭтотОбъект.Участок;
                                    конецесли;  
              
                                  Движение.Номенклатура=ТекСтрокапроводки2.Номенклатура;
                                  Движение.НоменклатурныеГруппы= Справочники.Номенклатура.НайтиПоНаименованию(ТекСтрокапроводки2.Номенклатура).Родитель;
              
              
                                  Движение.Организация= Организация;
                                  Движение.Контрагент_док=    ЭтотОбъект.Контрагент;
                                  Движение.ТипДвиж =Перечисления.ТипДвиж.Оплачено;

                                ////
                            конеццикла;
                        конецесли;
                        если ((Объект.Услуги.Количество()>0) и ((ТекСтрокапроводки.Тип_номенклатуры=Перечисления.Тип_номенклатуры.Услуги) или (ЭтотОбъект.Тип_номенклатуры=Перечисления.Тип_номенклатуры.Услуги))) тогда
                            Для Каждого ТекСтрокапроводки2 Из Объект.Услуги Цикл
                                        /////
                                  Движение = Движения.Маржа_Объектов.Добавить();
                                  Движение.Период=Этотобъект.Дата;
                                  Движение.Регистратор = Ссылка;
                                  Движение.ВидДвижения = ВидДвиженияНакопления.Расход;
                                  Движение.Вид_документа=Справочники.Вид_документа.НайтиПоНаименованию("ПлатежноеПоручениеИсходящее");
              
              
              
                                  если        (ПустаяСтрока(ТекСтрокапроводки.Тип_номенклатуры)=ложь) тогда
                  
                                    если (ТекСтрокапроводки.Тип_номенклатуры=Перечисления.Тип_номенклатуры.Услуги) тогда
                                      Движение.Статья_плана = Справочники.Статьи_плана.НайтиПоНаименованию("Услуги сторонних организаций");
                                      Движение.Сумма= ТекСтрокапроводки.СуммаПлатежа;
                                      Движение.Сумма_опл= ТекСтрокапроводки.СуммаПлатежа;
                                    иначеесли (ТекСтрокапроводки.Тип_номенклатуры=Перечисления.Тип_номенклатуры.Материалы)    тогда
                                      Движение.Статья_плана = Справочники.Статьи_плана.НайтиПоНаименованию("Оборудование и материалы");
                                      Движение.Сумма_опл=ТекСтрокапроводки.СуммаПлатежа;
                                    конецесли;    
                  
                                 иначе
                                    если (ЭтотОбъект.Тип_номенклатуры=Перечисления.Тип_номенклатуры.Услуги) тогда
                                      Движение.Статья_плана = Справочники.Статьи_плана.НайтиПоНаименованию("Услуги сторонних организаций");
                                      Движение.Сумма= ТекСтрокапроводки.СуммаПлатежа;
                                      Движение.Сумма_опл= ТекСтрокапроводки.СуммаПлатежа;
                                   иначеесли (ЭтотОбъект.Тип_номенклатуры=Перечисления.Тип_номенклатуры.Материалы)    тогда
                                      Движение.Статья_плана = Справочники.Статьи_плана.НайтиПоНаименованию("Оборудование и материалы");
                                      Движение.Сумма_опл=ТекСтрокапроводки.СуммаПлатежа;
                                   конецесли;    

                                 конецесли;    
              
                                  если        (ПустаяСтрока(ТекСтрокапроводки.ДДС)=ложь) тогда  
                                          Движение.ДДС_расхода=ТекСтрокапроводки.ДДС;
                                  иначе   Движение.ДДС_расхода=ЭтотОбъект.ДДС;
                                  конецесли;    
                                  если    (ПустаяСтрока(ТекСтрокапроводки.Объект)=ложь) тогда  
                                         Движение.Объект=ТекСтрокапроводки.Объект;
                                  иначе  Движение.Объект=ЭтотОбъект.Объект;
                                  конецесли;    
                                  если    (ПустаяСтрока(ТекСтрокапроводки.Участок)=ложь) тогда  
                                         Движение.Участок=ТекСтрокапроводки.Участок;
                                  иначе  Движение.Участок=ЭтотОбъект.Участок;
                                    конецесли;  
              
                                 Движение.Номенклатура=ТекСтрокапроводки2.Номенклатура;
                                 Движение.НоменклатурныеГруппы= Справочники.Номенклатура.НайтиПоНаименованию(ТекСтрокапроводки2.Номенклатура).Родитель;
              
              
                                  Движение.Организация= Организация;
                                  Движение.Контрагент_док=    ЭтотОбъект.Контрагент;
                                  Движение.ТипДвиж =Перечисления.ТипДвиж.Оплачено;

                            конеццикла;
                        конецесли;
                        
                        
                        
                    иначе
                              /////
                                  Движение = Движения.Маржа_Объектов.Добавить();
                                  Движение.Период=Этотобъект.Дата;
                                  Движение.Регистратор = Ссылка;
                                  Движение.ВидДвижения = ВидДвиженияНакопления.Расход;
                                  Движение.Вид_документа=Справочники.Вид_документа.НайтиПоНаименованию("ПлатежноеПоручениеИсходящее");
              
              
              
                                  если        (ПустаяСтрока(ТекСтрокапроводки.Тип_номенклатуры)=ложь) тогда
                  
                                    если (ТекСтрокапроводки.Тип_номенклатуры=Перечисления.Тип_номенклатуры.Услуги) тогда
                                      Движение.Статья_плана = Справочники.Статьи_плана.НайтиПоНаименованию("Услуги сторонних организаций");
                                      Движение.Сумма= ТекСтрокапроводки.СуммаПлатежа;
                                      Движение.Сумма_опл= ТекСтрокапроводки.СуммаПлатежа;
                                    иначеесли (ТекСтрокапроводки.Тип_номенклатуры=Перечисления.Тип_номенклатуры.Материалы)    тогда
                                      Движение.Статья_плана = Справочники.Статьи_плана.НайтиПоНаименованию("Оборудование и материалы");
                                      Движение.Сумма_опл=ТекСтрокапроводки.СуммаПлатежа;
                                    конецесли;    
                  
                                 иначе
                                    если (ЭтотОбъект.Тип_номенклатуры=Перечисления.Тип_номенклатуры.Услуги) тогда
                                      Движение.Статья_плана = Справочники.Статьи_плана.НайтиПоНаименованию("Услуги сторонних организаций");
                                      Движение.Сумма= ТекСтрокапроводки.СуммаПлатежа;
                                      Движение.Сумма_опл= ТекСтрокапроводки.СуммаПлатежа;
                                   иначеесли (ЭтотОбъект.Тип_номенклатуры=Перечисления.Тип_номенклатуры.Материалы)    тогда
                                      Движение.Статья_плана = Справочники.Статьи_плана.НайтиПоНаименованию("Оборудование и материалы");
                                      Движение.Сумма_опл=ТекСтрокапроводки.СуммаПлатежа;
                                   конецесли;    

                                 конецесли;    
              
                                  если        (ПустаяСтрока(ТекСтрокапроводки.ДДС)=ложь) тогда  
                                          Движение.ДДС_расхода=ТекСтрокапроводки.ДДС;
                                  иначе   Движение.ДДС_расхода=ЭтотОбъект.ДДС;
                                  конецесли;    
                                  если    (ПустаяСтрока(ТекСтрокапроводки.Объект)=ложь) тогда  
                                         Движение.Объект=ТекСтрокапроводки.Объект;
                                  иначе  Движение.Объект=ЭтотОбъект.Объект;
                                  конецесли;    
                                  если    (ПустаяСтрока(ТекСтрокапроводки.Участок)=ложь) тогда  
                                         Движение.Участок=ТекСтрокапроводки.Участок;
                                  иначе  Движение.Участок=ЭтотОбъект.Участок;
                                    конецесли;  
              
                                               
              
                                  Движение.Организация= Организация;
                                  Движение.Контрагент_док=    ЭтотОбъект.Контрагент;
                                  Движение.ТипДвиж =Перечисления.ТипДвиж.Оплачено;

                              конецесли;
                          иначе
                                            /////
                                  Движение = Движения.Маржа_Объектов.Добавить();
                                  Движение.Период=Этотобъект.Дата;
                                  Движение.Регистратор = Ссылка;
                                  Движение.ВидДвижения = ВидДвиженияНакопления.Расход;
                                  Движение.Вид_документа=Справочники.Вид_документа.НайтиПоНаименованию("ПлатежноеПоручениеИсходящее");
              
              
              
                                  если        (ПустаяСтрока(ТекСтрокапроводки.Тип_номенклатуры)=ложь) тогда
                  
                                    если (ТекСтрокапроводки.Тип_номенклатуры=Перечисления.Тип_номенклатуры.Услуги) тогда
                                      Движение.Статья_плана = Справочники.Статьи_плана.НайтиПоНаименованию("Услуги сторонних организаций");
                                      Движение.Сумма= ТекСтрокапроводки.СуммаПлатежа;
                                      Движение.Сумма_опл= ТекСтрокапроводки.СуммаПлатежа;
                                    иначеесли (ТекСтрокапроводки.Тип_номенклатуры=Перечисления.Тип_номенклатуры.Материалы)    тогда
                                      Движение.Статья_плана = Справочники.Статьи_плана.НайтиПоНаименованию("Оборудование и материалы");
                                      Движение.Сумма_опл=ТекСтрокапроводки.СуммаПлатежа;
                                    конецесли;    
                  
                                 иначе
                                    если (ЭтотОбъект.Тип_номенклатуры=Перечисления.Тип_номенклатуры.Услуги) тогда
                                      Движение.Статья_плана = Справочники.Статьи_плана.НайтиПоНаименованию("Услуги сторонних организаций");
                                      Движение.Сумма= ТекСтрокапроводки.СуммаПлатежа;
                                      Движение.Сумма_опл= ТекСтрокапроводки.СуммаПлатежа;
                                   иначеесли (ЭтотОбъект.Тип_номенклатуры=Перечисления.Тип_номенклатуры.Материалы)    тогда
                                      Движение.Статья_плана = Справочники.Статьи_плана.НайтиПоНаименованию("Оборудование и материалы");
                                      Движение.Сумма_опл=ТекСтрокапроводки.СуммаПлатежа;
                                   конецесли;    

                                 конецесли;    
              
                                  если        (ПустаяСтрока(ТекСтрокапроводки.ДДС)=ложь) тогда  
                                          Движение.ДДС_расхода=ТекСтрокапроводки.ДДС;
                                  иначе   Движение.ДДС_расхода=ЭтотОбъект.ДДС;
                                  конецесли;    
                                  если    (ПустаяСтрока(ТекСтрокапроводки.Объект)=ложь) тогда  
                                         Движение.Объект=ТекСтрокапроводки.Объект;
                                  иначе  Движение.Объект=ЭтотОбъект.Объект;
                                  конецесли;    
                                  если    (ПустаяСтрока(ТекСтрокапроводки.Участок)=ложь) тогда  
                                         Движение.Участок=ТекСтрокапроводки.Участок;
                                  иначе  Движение.Участок=ЭтотОбъект.Участок;
                                    конецесли;  
              
                                               
              
                                  Движение.Организация= Организация;
                                  Движение.Контрагент_док=    ЭтотОбъект.Контрагент;
                                  Движение.ТипДвиж =Перечисления.ТипДвиж.Оплачено;

               конецесли;
           конецесли;    
    КонецЦикла;
Иначе
       если        (ПустаяСтрока(ЭтотОбъект.Объект)=ложь) тогда    
          
          
               Движение = Движения.Маржа_Объектов.Добавить();
              
              
          
               Движение.Период=Этотобъект.Дата;
               Движение.Регистратор = Ссылка;
               Движение.ВидДвижения = ВидДвиженияНакопления.Расход;
               Движение.Вид_документа=Справочники.Вид_документа.НайтиПоНаименованию("ПлатежноеПоручениеИсходящее");
              
               если (ЭтотОбъект.Тип_номенклатуры=Перечисления.Тип_номенклатуры.Услуги) тогда
                  
                  Движение.Статья_плана = Справочники.Статьи_плана.НайтиПоНаименованию("Услуги сторонних организаций");
                  Движение.Сумма= ЭтотОбъект.СуммаДокумента;
                  Движение.Сумма_опл= ЭтотОбъект.СуммаДокумента;

               иначеесли (ЭтотОбъект.Тип_номенклатуры=Перечисления.Тип_номенклатуры.Материалы)    тогда
                  Движение.Статья_плана = Справочники.Статьи_плана.НайтиПоНаименованию("Оборудование и материалы");
                  Движение.Сумма_опл= ЭтотОбъект.СуммаДокумента;
              конецесли;    
              
               Движение.ДДС_расхода=ЭтотОбъект.ДДС;
                                                                                          
               Движение.Контрагент_док=    ЭтотОбъект.Контрагент;                                                                      
               Движение.Объект=ЭтотОбъект.Объект;
          
               Движение.Участок=ЭтотОбъект.Участок;
                
                Движение.Организация= Организация;
               Движение.ТипДвиж =Перечисления.ТипДвиж.Оплачено;
            
        конецесли;    

конецесли;    
Движения.Маржа_Объектов.Записать();


Прошу помощи, что неправильно в приведенном коде, чтобы не вылетало.
Заранее спасибо.
  Форум: Программирование обычных форм 1С 8.2 и не интер... · Просмотр сообщения: #148730 · Ответов: 0 · Просмотров: 96
 

>  как в расшифровке данных отчета (СКД) выводить меню выбора расшифровывающ отчетов НЕУПРАВ ФОРМЫ
svetas_l
Отправлено: 06.01.19, 12:58


Общительный
**

Группа: Пользователи
Сообщений: 29
Регистрация: 23.12.18
Пользователь №: 63555


Добрый День! Возникла потребность в расшифровке отчета , перед выводом расшифровывающего отчета давать пользователю право выбора через меню, каким именно отчетом он хочет расшифровать данный отчет. (код описан в теме расшифровка данных одного отчета (СКД) другим отчетом НЕУПРАВЛЯЕМЫЕ ФОРМЫ)
Заранее спасибо.
  Форум: Программирование обычных форм 1С 8.2 и не интер... · Просмотр сообщения: #148728 · Ответов: 0 · Просмотров: 94
 

>  составной тип данных в измерении регистра накопления
svetas_l
Отправлено: 06.01.19, 10:47


Общительный
**

Группа: Пользователи
Сообщений: 29
Регистрация: 23.12.18
Пользователь №: 63555


Есть потребность в измерении регистра накопления хранить составной тип данных, который зависит от типа документа, добавляющего движения в регистр накопления (например, в случае "ПлатежноеПоручениеИсходящее" тип справочник ДДС, в случае "ТребованиеНакладная" тип справочник номенклатуры, в случае "Наряд" тип справочник "Технические операции" )Т.е. нужна расшифровка движений документов, согласно их табличной части, чтобы не просто получать расшифровку, какие документы сформировали данную сумму расходом, а расшифровку в разрезе их табличных элементов. Как это оптимально сделать. Чтобы без труда любой отчет формировался простой выборкой, без вложенных подзапросов?
  Форум: Программирование обычных форм 1С 8.2 и не интер... · Просмотр сообщения: #148727 · Ответов: 0 · Просмотров: 92
 

>  СКД расшифровка отчета другим отчетом (не управляемые формы)
svetas_l
Отправлено: 05.01.19, 12:36


Общительный
**

Группа: Пользователи
Сообщений: 29
Регистрация: 23.12.18
Пользователь №: 63555


Добрый День!
Нужно сделать расшифровку данных одного отчета (СКД) другим отчетом, на неуправляемых формах (Курс Гелёва для управляемых форм, везде в основном всё расписано в google на управляемые формы, а тут обычные, метод "загуглить не работает" ).
Есть один отчет, из него при щелчке по цифре нужно получить второй отчет (структура приведена на картинке). Проблема состоит в том, так как основной отчет содержит группы колонок по годам, то добавление в ячейку параметр "месяц", "год" приводит к ошибке.
Т.е. в меню ""ПараметрыМакета в списке Параметр расшифровки , напротив значения "СуммаОборотРасшифровка" - ""Статья плана", "Месяц", "Год" - выдает ошибку.


Процедура РезультатОбработкаРасшифровки(Элемент, Расшифровка, СтандартнаяОбработка, ДополнительныеПараметры)
    // Вставить содержимое обработчика.
    сообщить(ДанныеРасшифровки.Элементы.Получить(Расшифровка).ПолучитьПоля().Найти("Статья_плана").значение.ссылка);
      
    сообщить(ЭтаФорма.ОтчетОбъект.КомпоновщикНастроек.Настройки.ПараметрыДанных.Элементы[0].Значение.ССылка);
КонецПроцедуры


ВЫБРАТЬ
    1 КАК номер,
    "Январь" КАК месяц
ПОМЕСТИТЬ месяца

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
    2,
    "Февраль"

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
    3,
    "Март"

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
    4,
    "Апрель"

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
    5,
    "Май"

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
    6,
    "Июнь"

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
    7,
    "Июль"

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
    8,
    "Август"

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
    9,
    "Сентябрь"

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
    10,
    "Октябрь"

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
    11,
    "Ноябрь"

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
    12,
    "Декабрь"
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    месяца.номер КАК номер,
    месяца.месяц КАК месяц
ИЗ
    месяца КАК месяца
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    Маржа_ОбъектовОбороты.Статья_плана КАК Статья_плана,
    МЕСЯЦ(Маржа_ОбъектовОбороты.Период) КАК Месяц,
    ГОД(Маржа_ОбъектовОбороты.Период) КАК Год,
    Маржа_ОбъектовОбороты.СуммаОборот КАК СуммаОборот,
    Маржа_ОбъектовОбороты.Статья_плана.Код КАК Статья_планаКод
ПОМЕСТИТЬ месяц_статья_плана
ИЗ
    РегистрНакопления.Маржа_Объектов.Обороты(, , Месяц, ) КАК Маржа_ОбъектовОбороты
ГДЕ
    Маржа_ОбъектовОбороты.Объект = &Объект
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    месяц_статья_плана.Статья_плана КАК Статья_плана,
    месяц_статья_плана.Год КАК Год,
    СУММА(месяц_статья_плана.СуммаОборот) КАК СуммаОборот,
    месяца.месяц КАК Месяц,
    месяца.номер КАК номер
ИЗ
    месяц_статья_плана КАК месяц_статья_плана
        ВНУТРЕННЕЕ СОЕДИНЕНИЕ месяца КАК месяца
        ПО месяц_статья_плана.Месяц = месяца.номер

СГРУППИРОВАТЬ ПО
    месяц_статья_плана.Статья_плана,
    месяц_статья_плана.Год,
    месяца.месяц,
    месяца.номер



ВЫБРАТЬ
    Маржа_ОбъектовОбороты.Статья_плана КАК Статья_плана,
    МЕСЯЦ(Маржа_ОбъектовОбороты.Период) КАК Месяц,
    ГОД(Маржа_ОбъектовОбороты.Период) КАК Год,
    Маржа_ОбъектовОбороты.Сумма КАК Сумма,
    Маржа_ОбъектовОбороты.Регистратор КАК Регистратор,
    Маржа_ОбъектовОбороты.Период КАК Период
ПОМЕСТИТЬ РАСШИФРОВКА_ОБЪЕКТ
ИЗ
    РегистрНакопления.Маржа_Объектов КАК Маржа_ОбъектовОбороты
ГДЕ
    Маржа_ОбъектовОбороты.Объект = &Объект
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    РАСШИФРОВКА_ОБЪЕКТ.Период КАК Период,
    РАСШИФРОВКА_ОБЪЕКТ.Регистратор КАК Регистратор,
    РАСШИФРОВКА_ОБЪЕКТ.Сумма КАК Сумма
ИЗ
    РАСШИФРОВКА_ОБЪЕКТ КАК РАСШИФРОВКА_ОБЪЕКТ
ГДЕ
    РАСШИФРОВКА_ОБЪЕКТ.Месяц = &Месяц
    И РАСШИФРОВКА_ОБЪЕКТ.Статья_плана = &Статья_плана
    И РАСШИФРОВКА_ОБЪЕКТ.Год = &Год

как при щелчке по цифре во второй отчет передать параметр "Месяц", "Год" и запустить отчет расшифровки?
  Форум: Программирование обычных форм 1С 8.2 и не интер... · Просмотр сообщения: #148715 · Ответов: 0 · Просмотров: 106
 

>  не все строки запроса выгружаются в таблицу значений
svetas_l
Отправлено: 04.01.19, 16:30


Общительный
**

Группа: Пользователи
Сообщений: 29
Регистрация: 23.12.18
Пользователь №: 63555


Добрый День!
выгружаю данные из запроса в таблицу значений, которая лежит на форме (интерфейс не управляемый- обычный)
и не все строки запроса выгружаются в таблицу значений.
Процедура Кнопка21Нажатие(Элемент)
      
        Запрос3=новый Запрос;

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

       ЭлементыФормы.ОбъектВыгрузка.Значение = Запрос3.Выполнить().Выгрузить();
       ЭлементыФормы.ОбъектВыгрузка.СоздатьКолонки();
              
  
      
  КонецПроцедуры



строк 124 (запрос отрабатывает в консоли запросов, полностью выводит все строки)
в таблице значений 74. (а в программе многие строки этого же запроса не попадают).
Кто знает с чем это может быть связанно.


  Форум: Программирование обычных форм 1С 8.2 и не интер... · Просмотр сообщения: #148699 · Ответов: 0 · Просмотров: 81
 

>  Конвертация данных 2.1+ нечеткий поиск
svetas_l
Отправлено: 02.01.19, 23:01


Общительный
**

Группа: Пользователи
Сообщений: 29
Регистрация: 23.12.18
Пользователь №: 63555


Добрый День!
Задача сопоставить номенклатуру 2-ух разных баз (1-база по документам бухгалтерским, 2-ая база по фактическому товару склада, обе изначально заполняли справочник номенклатуры параллельно , в 1-ой базе - заполнял бухгалтер по документам контрагентов, во 2-базе заполнял кладовщик по физическому соответствию)
вот вроде бы накатала 2-ве функции, которые призваны сопоставить номенклатуру этих баз (в ручную сопоставлять некому, коды номенклатуры пока не ведутся, при сопоставлении в екселе сходится 20%, в бухгалтерской базе номенклатура на украинском в основном, в базе кладовщика на русском в основном).

Функция ФункцияПреобразованияНоменклатуры(Строка_Номенклатуры)
    RegExp = Новый COMОбъект("VBScript.RegExp");// создаем объект для работы с регулярными
    RegExp.MultiLine = ложь;  // истина — текст многострочный, ложь — одна строка
    RegExp.Global = Истина;     // истина — поиск по всей строке, ложь — до первого совпадения
    RegExp.IgnoreCase = Истина; // истина — игнорировать регистр строки при поиске
    Разделитель=" ";
    RegExp.Pattern = "[^\" + Разделитель + "]+";
    Matches = RegExp.Execute(Строка_Номенклатуры);

    ВидНоменкл="";
    Маркер="";
    
    НоменклатурныйЭлемент = Новый Структура;
    // пара ключ (имя переменной) - значение (произв. типа)
              
         //выделяем размер -параметры числовые      
    СтрокаЧисел = "";
         Для Индекс = 1 По СтрДлина(Строка_Номенклатуры) Цикл
            Символ = Сред((Строка_Номенклатуры), Индекс, 1); // Перебираем все сиволы из нашей строки
            Если ((КодСимвола(Символ) >= 42 И КодСимвола(Символ) <= 59) или   (КодСимвола(Символ)=92)или   (КодСимвола(Символ)=1093)или (КодСимвола(Символ)=32)) Тогда // Код нуля - 48, код 9-ки - 57
                Если (СтрДлина(СтрокаЧисел) = 0) и ((КодСимвола(Символ) >= 48 И КодСимвола(Символ) <= 57)) тогда
                    СтрокаЧисел = СтрокаЧисел + Символ;
                иначеесли (СтрДлина(СтрокаЧисел)> 0)    тогда
                    СтрокаЧисел = СтрокаЧисел + Символ;
                конецесли;      
             КонецЕсли;
          КонецЦикла;
        kk= СтрДлина(СтрокаЧисел);
        Пока   kk >= 0 Цикл
           Символ = Сред((СтрокаЧисел), kk, 1); // Перебираем все сив
             если ((КодСимвола(Символ) >= 48 И КодСимвола(Символ) <= 57)) тогда
                 прервать
             конецесли;
        kk = kk - 1;
       КонецЦикла;
       Если СтрДлина(СтрокаЧисел) > 0 Тогда
            
             НоменклатурныйЭлемент.Вставить("Размер", Лев(СокрЛП(СтрокаЧисел), kk));
          КонецЕсли;
        СтрокаЧисел = "";

          
       Для Сч = 0 По Matches.Count()-1 Цикл
        
           Если Сч=0 Тогда
                  
                   НоменклатурныйЭлемент.Вставить("Наименов_кор_руск",(Matches.Item(Сч).Value));

           Иначе
                 СтрокаМаркировки = "";    
                  СтрокаЧис  = "";
                  Символ2 =  "";
                  Индекс1 = 0;
                  Для Индекс1 = 1 По СтрДлина(Matches.Item(Сч).Value) Цикл
                      Символ2 = Сред((Matches.Item(Сч).Value), Индекс1, 1); // Перебираем все сиволы из нашей строки
                      Если      (КодСимвола(Символ2) >= 48 И КодСимвола(Символ2) <= 57) тогда      //не содержит цифр
                                  СтрокаЧис=  СтрокаЧис  + Символ2;

                      иначеЕсли      ((КодСимвола(Символ2) >= 65 И КодСимвола(Символ2) <= 90)      //англ рег
                             или   (КодСимвола(Символ2) >= 97 И КодСимвола(Символ2) <= 122)      //англ м
                             или   (КодСимвола(Символ2) >= 1040 И КодСимвола(Символ2) <= 1071)      //руск рег
                             ) тогда        //руск рег
                                 СтрокаМаркировки = СтрокаМаркировки  + Символ2;
                      конецесли;      
                      
                  КонецЦикла;//по символьный цикл разбора слова
                  
                  Если СтрДлина(СтрокаМаркировки) >= 1 Тогда
                              Маркер= Маркер+" "+СокрЛП(СтрЗаменить(Matches.Item(Сч).Value,НоменклатурныйЭлемент.Размер,""));
                  ИначеЕсли (СтрДлина(СтрокаЧис) = 0) и (СтрДлина(СтрокаМаркировки) = 0) Тогда
                        если   СтрДлина(СокрЛП(Matches.Item(Сч).Value)) >=1 тогда
                             ВидНоменкл=ВидНоменкл+" "+СокрЛП(СтрЗаменить(Matches.Item(Сч).Value,НоменклатурныйЭлемент.Размер,""));
                        конецесли;
                          
                  КонецЕсли;
               КонецЕсли;
          
                  
          
          
       КонецЦикла;
      
    
             НоменклатурныйЭлемент.Вставить("Вид_номенклатуры", СокрЛП(ВидНоменкл));
             НоменклатурныйЭлемент.Вставить("Маркеровка_производ",СокрЛП(Маркер));

    
    Возврат НоменклатурныйЭлемент;
КонецФункции


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

            Выборка0 = Запрос.Выполнить().Выбрать();
         если Выборка0.Количество()=0 тогда

      
      
           Номенклатура = ФункцияПреобразованияНоменклатуры(СокрЛП(ПолеВвода1));
          
           Сообщить("Наименов_кор_руск"+" "+Номенклатура.Наименов_кор_руск);
           Сообщить("Вид_номенклатуры"+" "+Номенклатура.Вид_номенклатуры);

           Сообщить("Маркеровка_производ"+" "+Номенклатура.Маркеровка_производ);

           Сообщить("Размер"+" "+Номенклатура.Размер);

            Запрос = Новый Запрос;                              
            Запрос.УстановитьПараметр("Наименов_кор_руск","%" + Номенклатура.Наименов_кор_руск+ "%");
            Запрос.УстановитьПараметр("Вид_номенклатуры","%" + Номенклатура.Вид_номенклатуры+ "%");
            Запрос.УстановитьПараметр("Маркеровка","%" + Номенклатура.Маркеровка_производ+ "%");
            Запрос.УстановитьПараметр("Размер","%" + Номенклатура.Размер+ "%");

            Запрос.Текст =
            "ВЫБРАТЬ
            |Номенклатура.Наименование КАК Наименование,
            |Номенклатура.Родитель.Наименование КАК РодительНаименование
            |ИЗ
            |Справочник.Номенклатура КАК Номенклатура
            |ГДЕ
            |   Номенклатура.Наименов_кор_руск ПОДОБНО &Наименов_кор_руск
            | И Номенклатура.Размер  ПОДОБНО &Размер
            | И Номенклатура.Маркеровка_производ  ПОДОБНО &Маркеровка
            | И Номенклатура.Вид_номенклатуры  ПОДОБНО &Вид_номенклатуры
            |";

            Выборка = Запрос.Выполнить().Выбрать();
          
            если Выборка.Количество()>0 тогда
                Пока Выборка.Следующий() Цикл
                    //сверяешь маркировку и размер среди найденных
                    Сообщить("родитель"+" "+Выборка.РодительНаименование);
                    Сообщить("наименование"+" "+Выборка.Наименование);
                КонецЦикла;
             конецесли;

         иначеесли Выборка0.Количество()>0 тогда
                Пока Выборка0.Следующий() Цикл
                    //сверяешь маркировку и размер среди найденных
                    Сообщить("родитель"+" "+Выборка0.РодительНаименование);
                    Сообщить("наименование"+" "+Выборка0.Наименование);
                КонецЦикла;
             конецесли;

вроде бы работает , правда в конвертации пока не тестировала.
Может у кого-то есть более оптимальные предложения?
  Форум: Конфигурация "1С:Конвертация данных" · Просмотр сообщения: #148636 · Ответов: 18 · Просмотров: 289
 

>  как функцию вставить в алгоритмы
svetas_l
Отправлено: 02.01.19, 22:52


Общительный
**

Группа: Пользователи
Сообщений: 29
Регистрация: 23.12.18
Пользователь №: 63555


Добрый День!
Вроде бы накатала алгоритм для поиска сопоставлений номенклатуры , получилось 2-ве функции, причем одна вызывает другую, в обычной базе вроде бы отрабатывает, но как вставить их в алгоритмы конвертации, как к ним обратиться и как задать параметры?
а главное, как выгрузить результат в событие "после загрузки"?

Функции описаны здесь.
  Форум: Конфигурация "1С:Конвертация данных" · Просмотр сообщения: #148635 · Ответов: 2 · Просмотров: 141
 

>  выгрузка в УПП через Конвертацию "Проведение документа: Платежное поручение исходящее Не совпадают сумма документа и ее расшифровка"
svetas_l
Отправлено: 02.01.19, 22:41


Общительный
**

Группа: Пользователи
Сообщений: 29
Регистрация: 23.12.18
Пользователь №: 63555


Vofka @ 28.12.18, 9:28 * ,
Объект.ОтраженоВОперУчете = Истина;    
Объект.Оплачено= Истина;
Объект.ВалютаДокумента = Справочники.Валюты.НайтиПоКоду("980");
Объект.ВалютаВзаиморасчетовРаботника = Справочники.Валюты.НайтиПоКоду("980");



если ((Объект.СуммаДокумента=0) и (Объект.РасшифровкаПлатежа.Итог("СуммаПлатежа")>0)) тогда
      Объект.СуммаДокумента=Объект.РасшифровкаПлатежа.Итог("СуммаПлатежа");
конецесли;    



Если  Объект.Проведен   Тогда
       Попытка
        Объект.Записать(РежимЗаписиДокумента.Проведение, РежимПроведенияДокумента.Неоперативный);     
    Исключение
    КонецПопытки
КонецЕсли;
  Форум: Конфигурация "1С:Конвертация данных" · Просмотр сообщения: #148634 · Ответов: 15 · Просмотров: 290
 

>  Конвертация данных 2.1+ нечеткий поиск
svetas_l
Отправлено: 28.12.18, 11:59


Общительный
**

Группа: Пользователи
Сообщений: 29
Регистрация: 23.12.18
Пользователь №: 63555


Vofka @ Сегодня, 11:54 * ,
так это из обычной конфигурации, а из конвертации как?
  Форум: Конфигурация "1С:Конвертация данных" · Просмотр сообщения: #148522 · Ответов: 18 · Просмотров: 289
 

>  Конвертация данных 2.1+ нечеткий поиск
svetas_l
Отправлено: 28.12.18, 11:51


Общительный
**

Группа: Пользователи
Сообщений: 29
Регистрация: 23.12.18
Пользователь №: 63555


Vofka @ Сегодня, 11:43 * ,
хотя бы 60% сработает. вопрос как обратиться к
StrMatch = Новый(«AddIn.StrMatch.StrMatchExtension»);
или к другому объекту представляющего библиотеку нечеткого поиска или к RegExp , но обратится из конвертации
  Форум: Конфигурация "1С:Конвертация данных" · Просмотр сообщения: #148519 · Ответов: 18 · Просмотров: 289
 

>  Конвертация данных 2.1+ нечеткий поиск
svetas_l
Отправлено: 28.12.18, 10:43


Общительный
**

Группа: Пользователи
Сообщений: 29
Регистрация: 23.12.18
Пользователь №: 63555


svetas_l @ Сегодня, 10:28 * ,
чтобы составить реестр соответствий его нужно кому-то заполнять, а таких физически нет, вот и требуется нечеткий поиск....нет людей для заполнения реестра соответствий.. Задача программы ускорить труд пользователей, а не увеличить его, сэкономив на зарплате сотрудников, не увеличивая рабочее время и оплату труда...
поэтому его нужно заполнить автоматом с помощью нечеткого поиска....
  Форум: Конфигурация "1С:Конвертация данных" · Просмотр сообщения: #148511 · Ответов: 18 · Просмотров: 289
 

>  Конвертация данных 2.1+ нечеткий поиск
svetas_l
Отправлено: 28.12.18, 10:28


Общительный
**

Группа: Пользователи
Сообщений: 29
Регистрация: 23.12.18
Пользователь №: 63555


sava1 @ Сегодня, 10:26 * ,
как обратиться к объекту?
  Форум: Конфигурация "1С:Конвертация данных" · Просмотр сообщения: #148508 · Ответов: 18 · Просмотров: 289
 

>  Конвертация данных 2.1+ нечеткий поиск
svetas_l
Отправлено: 28.12.18, 10:25


Общительный
**

Группа: Пользователи
Сообщений: 29
Регистрация: 23.12.18
Пользователь №: 63555


svetas_l @ Сегодня, 10:13 * ,
вопрос был как обратиться из конвертора к объекту нечеткого поиска , чтобы произвести замену номенклатуры и вставить в счета нужную номенклатуру, оставив лишь цены ?
  Форум: Конфигурация "1С:Конвертация данных" · Просмотр сообщения: #148506 · Ответов: 18 · Просмотров: 289
 

>  Конвертация данных 2.1+ нечеткий поиск
svetas_l
Отправлено: 28.12.18, 10:13


Общительный
**

Группа: Пользователи
Сообщений: 29
Регистрация: 23.12.18
Пользователь №: 63555


Vofka @ Сегодня, 9:33 * ,
задача = из базы источника выгружается номенклатура в счетах (база бухгалтерская, где номенклатура ведется по счетам поставщиков), в базу приёмник УПП, в базе приёмнике ведется движение по складу товарными накладными и приходом товаров /услуг, но по номенклатуре, которая в ручную заменяется на складскую ( т.е. не так как пишет бухгалтерия контрагентов в счетах, а так как уже есть аналоги на складе, чтобы физически не хранить дублекаты одной номенклатуры под разными названиями в справочнике). Задача :
нужно выгружать счета с номенклатурой, подставляя номенклатуру справочника склада, чтобы потом в создающиеся приход товаров услуг (который делается по факту кладовщиком), подтянуть цены из выгруженного ранее счета (который был выгружен с бухгалтерской базы с номенклатурой поставщиков).
Т.е. в момент выгрузки счета, его нужно выгружать уже в аналогичной номенклатуре , согласно справочника номенклатуры кладовщика, а не так как ведет бухгалтерия с наименованиями номенклатуры по полученным документам контрагентов....

  Форум: Конфигурация "1С:Конвертация данных" · Просмотр сообщения: #148503 · Ответов: 18 · Просмотров: 289
 

>  выгрузка в УПП через Конвертацию "Проведение документа: Платежное поручение исходящее Не совпадают сумма документа и ее расшифровка"
svetas_l
Отправлено: 27.12.18, 20:46


Общительный
**

Группа: Пользователи
Сообщений: 29
Регистрация: 23.12.18
Пользователь №: 63555


Vofka, может ответите, спасибо...


 ! 

Правила: 1
 
  Форум: Конфигурация "1С:Конвертация данных" · Просмотр сообщения: #148473 · Ответов: 15 · Просмотров: 290
 

>  Конвертация данных 2.1+ нечеткий поиск
svetas_l
Отправлено: 27.12.18, 20:45


Общительный
**

Группа: Пользователи
Сообщений: 29
Регистрация: 23.12.18
Пользователь №: 63555


Добрый День!
Кто-то использовал в конфигурации Конвертация данных 2.1 (2.1.8.2) нечеткий поиск для сопоставления данных объекта со справочником базы приёмника, в событии после выгрузки? как обратиться к вызову библиотеки
1. в варианте к StrMatch = Новый(«AddIn.StrMatch.StrMatchExtension») в случае с файл StrMatch.dll
или
2. в варианте к RegExp = Новый COMОбъект("VBScript.RegExp"); rex32.dll /rex64.dll для
Заранее спасибо.
  Форум: Конфигурация "1С:Конвертация данных" · Просмотр сообщения: #148472 · Ответов: 18 · Просмотров: 289
 

>  выгрузка в УПП через Конвертацию "Проведение документа: Платежное поручение исходящее Не совпадают сумма документа и ее расшифровка"
svetas_l
Отправлено: 26.12.18, 14:53


Общительный
**

Группа: Пользователи
Сообщений: 29
Регистрация: 23.12.18
Пользователь №: 63555


Vofka @ Сегодня, 14:39 * ,
Объект.СуммаДокумента=Объект.РасшифровкаПлатежа.Итог("СуммаПлатежа");
так и записано. Что не так?
  Форум: Конфигурация "1С:Конвертация данных" · Просмотр сообщения: #148421 · Ответов: 15 · Просмотров: 290
 

>  выгрузка в УПП через Конвертацию "Проведение документа: Платежное поручение исходящее Не совпадают сумма документа и ее расшифровка"
svetas_l
Отправлено: 26.12.18, 14:20


Общительный
**

Группа: Пользователи
Сообщений: 29
Регистрация: 23.12.18
Пользователь №: 63555


Vofka @ Сегодня, 9:46 * ,
документ создается автоматом в бухгалтерия для Украины 2.0 при выгрузке с банка клиента обработкой, просто в базе источнике он не ругается, а вот при выгрузке и при проведении в базе приёмнике ругается.
Нельзя менять базу источник 2.0 , она должна быть полностью на поддержке без изменений. Все изменения должны быть при выгрузке через конвертор.... Как это можно сделать?

Vofka, подскажите, пожалуйста, как можно правильно сделать?
  Форум: Конфигурация "1С:Конвертация данных" · Просмотр сообщения: #148416 · Ответов: 15 · Просмотров: 290
 

2 страниц V   1 2 >

Новые сообщения  Открытая тема (есть новые ответы)
Опрос  Опрос (есть новые голоса)
Нет новых сообщений  Открытая тема (нет новых ответов)
Нет новых голосов  Опрос (нет новых голосов)
Популярная тема  Горячая тема (есть новые ответы)
Закрыта  Закрытая тема
Нет новых  Горячая тема (нет новых ответов) Перемещена  Тема перемещена
 

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

Курсы валют: доллар США к гривне Курсы валют: евро к гривне Курсы валют: российский рубль к гривне