Все технические форумы на одном сайте Удобный поиск информации с популярных форумов в одном месте
Вопрос: 1с не отрабатывает событие "ПриИзменении".

Добрый день. Заметил странное поведение 1с после обновления платформы. После ввода текста в поле ввода нажимаю на гиперссылку в этой же форме. К полю ввода привязано событие "ПриИзменении". Так вот  1с не заходит в эту процедуру при таком варианте работы. Если после ввода текста активировать любое другое поле ввода, то событие отрабатывает как надо. Подскажите пожалуйста как побороть эту проблему.
Ответ: Вобщем придумал так: при нажатии на гиперссылку программно устанавливаю текущийэлемент формы и всё отрабатывает.
Вопрос: как отловить событие "ПриИзменении" в колонке программно добавленной таблицы

Таблица программмно размещена на форме,
нужно отловить событие "ПриИзменении" в колонке таблицы.

Как это можно сделать?
Ответ: на всякий случай еще раз решил спросить?
Вопрос: обновитьинтерфейс() не отрабатывает на веб клиенте

Использую обновитьинтерфейс() для обновления функциональных опций.
В тонком клиенте все ОК, а в веб клиенте не работает обновитьинтерфейс(), ничего не происходит, хотя в отладке выполняется данный метод без ошибок.

Как можно решить? Кто-нибудь сталкивался?
Ответ: И опять как всегда сам решил вопрос.
Решает криво, через задержки (видимо веб клиент не успевает на платформой), но др. варианта не нашел.

&НаКлиенте
Процедура ОбновитьИнтерфейсВебКлиент() Экспорт
    
    ОбновитьИнтерфейс();
    
    НачДата = ТекущаяДата();
    Пока НачДата >= ТекущаяДата() Цикл
    КонецЦикла;
    
    ПерейтиПоНавигационнойСсылке("e1cib/navigationpoint/startpage");
    
    НачДата = ТекущаяДата() + 1;
    Пока НачДата >= ТекущаяДата() Цикл
    КонецЦикла;
    
    ОбновитьИнтерфейс();    

КонецПроцедуры
Вопрос: [РЕШЕНО] Внешние источники данных: проблемы с подключением в 8.3.7

Здравствуйте. Есть необходимость подключиться к БД mysql на хостинге. Хотелось бы сделать это с помощью внешних источников данных.
Проблема в следующем:
Создаю таблицу, прописываю параметры подключения, выбираю драйвер, но не нахожу в списке подходящего (нужного нет в списке). Предполагаю, что нужен MySQL ODBC 5.3 Unicode driver, он установлен в системе. Платформа 8.3.7.1917, ОС Windows 10.

Пробовал сделать то же самое на сервере 2008R2, наблюдается та же проблема.
При попытке подключить драйвер Microsoft ODBC for Oracle выдает ошибку:

Коллеги, подскажите как решить проблему? В чем может быть дело?
Ответ:
Проблему решил. Оказалось, что нужно было устанавливать 32-разрядную версию драйвера ODBC.
Вопрос: [РЕШЕНО]УТ 11.4.2.144 Ключи аналитики номенклатуры

Добрый день! Парни, может кто сталкивался, у клиента куча дублей по справочнику Ключи налатики номенклатуры, соответственно некорректные записи в РС.Аналитика ключей номенклатуры.
Разбираться и исправлять очень муторно, решил проблему тем что очистил регистр сведений. Для его повторного заполнения само собой необходимо перепровести документы за все периоды. Но перед этим хотелось бы почистить сам справочник от дублей, но наткнулся на то что дубли не заменяются и не удаляются из регламентного документа "РасчетСебестоимостиТоваров". Вариант только перепровести документ прихода или расхода, для повторного перерасчета из закрытия месяца. Как можно программного заставить документ перерасчитаться? Или распровести его для удаления движений по регистру?
Или мне просто почистить РС.СтоимостьТоваров?А там перерасчет не заставит себя ждать...ща попробую
Ответ:
Я просто полностью ветку не читал с ошибками, но в общем как понял, что ошибка именно была при закрытии месяца, то что отрицательные остатки показывались. И проблему были не только в ключах, но и в других регистрах. Может быть я ошибаюсь, но про регистр Стоимость товаров, по которому делает движения документ РасчетСебестоимости, не было написано...

Поэтому решил проблему путем чистки РС.АналитикаУчетаНоменклатуры и РС.СтоимостьТоваров. Далее в справочнике КлючиАналитикиНоменклатуры заменил дубли и удалил их. После чего обработкой создал для этих ключей записи по РС.АналитикаУчетаНоменклатуры. Для Формирования записей в РС.СтоимостьТоваров перезакрыл месяцы, перерасчет себестоимости. И все теперь стало корректно показываться в отчетах.
А как дальше поведет себя система без понятия, так как откуда такая фигня возникла с аналитикой не удалось установить. Очень много разных людей ей делало всякие загрузки, доработки, моментами не очень правильные.

Не обновляемся потому что клиент пока не хочет, так как конфигурация переписана сильно, и это очень дорого для него
Вопрос: Вызвать процедуру ПриИзменении, для изменяемого реквизита в тч из внешней обработки

Заполняю обработкой ТЧ. Реквизиты заполняются, но ПриЗименении() Номенклатуры не срабатывает. Конфигурация типовая и изменения в ней нельзя делать. Перетаскивать содержимое ПриИзменении() тоже не вариант, куча подвязок с разлиными модулями. Можно как-то вызывать ее из обработки при заполнении?


1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
&НаКлиенте
Процедура ЗаполнитьТЧ(Команда)
    
    КлючПоиска = Новый Структура("Ключ", ДокументВП);
    
    Окна = ПолучитьОкна();
    
    Для каждого ОкноС из Окна Цикл
        
        //Ищем нужное окно
        Если НЕ ОкноС.Основное И Найти(ОкноС.Заголовок, Строка(ДокументВП)) Тогда
            
            Форма = ОткрытьФорму("Документ.ВозвратТоваровПоставщику.Форма.ФормаДокумента",КлючПоиска,,,ОкноС);
            
            НовыйОбъект = Форма.Объект;
            ЗаполнитьОбъект(НовыйОбъект);
            КопироватьДанныеФормы(НовыйОбъект, Форма.Объект);
        КонецЕсли;    
    КонецЦикла;
    //Закрыть();
    
КонецПроцедуры
 
 
&НаКлиенте
Процедура ЗаполнитьОбъект(НовыйОбъект)
    
     //НовыйОбъект.Контрагент = Контрагент;
 
      
     НовыйОбъект.Товары.Очистить();
    
    Для каждого СтрокаЗап из Объект.ОстаткиНоменклатуры Цикл
        
        Если СтрокаЗап.Состояние = "" Тогда
            
            РезультатПоискаПоНаименованию = НайтиНоменклатуру(СтрокаЗап.Номенклатура);
            
            стрДокумента = НовыйОбъект.Товары.Добавить();
            стрДокумента.Номенклатура = РезультатПоискаПоНаименованию;
            стрДокумента.КоличествоУпаковок = СтрокаЗап.Количество;
            стрДокумента.Количество = СтрокаЗап.Количество;
            
 
 
            КонецЕсли;
        
        КонецЦикла;
    
    КонецПроцедуры
Ответ: GreenkA, если экспорт дописать то как ее вызвать потом? Через НовыйОбъект?

1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
&НаКлиенте
Процедура ЗаполнитьОбъект(НовыйОбъект)
    
     //НовыйОбъект.Контрагент = Контрагент;
 
      
     НовыйОбъект.Товары.Очистить();
    
    Для каждого СтрокаЗап из Объект.ОстаткиНоменклатуры Цикл
        
        Если СтрокаЗап.Состояние = "" Тогда
            
            РезультатПоискаПоНаименованию = НайтиНоменклатуру(СтрокаЗап.Номенклатура);
            
            стрДокумента = НовыйОбъект.Товары.Добавить();
            стрДокумента.Номенклатура = РезультатПоискаПоНаименованию;
            стрДокумента.КоличествоУпаковок = СтрокаЗап.Количество;
            стрДокумента.Количество = СтрокаЗап.Количество;
            
           //вызов При Изменении
 
 
            КонецЕсли;
        
        КонецЦикла;
    
    КонецПроцедуры
Вопрос: (НЕ РЕШЕНО) КАК УСКОРИТЬ ЗАГРУЗКУ EXCEL

ЕСТЬ процедура
Код:
Перем КолонкаТП;
  Запрос = Новый Запрос;
   ТЗ1.Очистить();
   ТЗ1.Колонки.Добавить("Ном_строки",,,10);

   ТЗ1.Колонки.Добавить("Наименование",,,60);
   ТЗ1.Колонки.Добавить("Категория",,,40);

   ТЗ1.Колонки.Добавить("Ед",,,3);
   ТЗ1.Колонки.Добавить("Кол",,,6);
   ТЗ1.Колонки.Добавить("Цена",,,6);
   ТЗ1.Колонки.Добавить("Сумма",,,18);
  
   ТЗ_Н.Очистить();
   
  
   Режим = РежимДиалогаВыбораФайла.ВыборКаталога;
   ДиалогОткрытия = Новый ДиалогВыбораФайла(Режим);
// вывод списка файлов из указанной папки
   ДиалогОткрытия.Каталог = "";
   ДиалогОткрытия.МножественныйВыбор = Ложь;
   ДиалогОткрытия.Заголовок = "Выберите каталог";
  Если ДиалогОткрытия.Выбрать() Тогда
    ПутьККаталогу = ДиалогОткрытия.Каталог;
  КонецЕсли;   //

  Массив = НайтиФайлыВИерархии(ПутьККаталогу, "*.xls");

  Для Каждого ЭлементМассива из Массив Цикл
      
      СтрокаПодключения="Provider=Microsoft.ACE.OLEDB.12.0;Data Source="+ ЭлементМассива.ПолноеИмя +";Extended Properties=Excel 12.0;";
      Connection=Новый ComObject("ADODB.Connection");
      Попытка
         Connection.Open(СтрокаПодключения);
      Исключение
         Сообщить("Ошибка подключения к EXCEL ADODB.Connection");
         Возврат;
      КонецПопытки;
     
     
      Попытка
         Эксель = новый COMОбъект("Excel.Application");
      Исключение
         Сообщить("Ошибка подключения к EXCEL Excel.Application");
         Возврат;
      КонецПопытки;    
         сообщить("УСПЕШНО EXCEL");   

    // формирование шапки документа
         Книга = Эксель.WorkBooks.Open(ЭлементМассива.ПолноеИмя);
         Лист = Книга.WorkSheets(1);
                
         Объект= СтрЗаменить(СокрЛП(Лист.Cells(1,1).Value), "Объект: ", "");
         Организация= СтрЗаменить(СокрЛП(Лист.Cells(2,1).Value), "Организация: ", "");
         Суммадоговора= Число(СокрЛП(Лист.Cells(2,6).Value));
         ПутьЗагрузки=ЭлементМассива.ПолноеИмя;
         ФайлЗагрузки=ЭлементМассива.Имя;
        
         Сообщить(Объект);
         Сообщить(Организация);
         Сообщить(Суммадоговора);
        
         НоваяСтрокаТЗ_Н= ТЗ_Н.Добавить();
         НоваяСтрокаТЗ_Н.Объекты_ПФ=Объект;

         // формирование табличной части документа
          // после подключения загружаем содержимое файла
      ТекстЗапроса =
      "SELECT
      | Наименование AS Наименование,
      | Ед AS Ед,
      | Кол AS  Кол,
      | Цена AS Цена,
      | Сумма  AS Сумма
      |FROM
      |[A4:F]
      |";
     
      Выборка = Новый COMОбъект("ADODB.Recordset");

      Попытка
         Выборка.Open(ТекстЗапроса, Connection,,,);
      Исключение
         Сообщить ("Проблемы с выполнением запроса");
         Возврат;
      КонецПопытки;

     Таблица = Новый ТаблицаЗначений;
    
     Таблица.Колонки.Добавить("Ном_строки",Новый ОписаниеТипов("Число"));
     Таблица.Колонки.Добавить("Наименование",Новый ОписаниеТипов("Строка"));
        Таблица.Колонки.Добавить("Категория",Новый ОписаниеТипов("Строка"));
     Таблица.Колонки.Добавить("Ед",Новый ОписаниеТипов("Строка"));
     Таблица.Колонки.Добавить("Кол",Новый ОписаниеТипов("Число"));
     Таблица.Колонки.Добавить("Цена",Новый ОписаниеТипов("Число"));
     Таблица.Колонки.Добавить("Сумма",Новый ОписаниеТипов("Число"));

     i=4;
     Категория="";
    
        
     Пока НЕ Выборка.EOF() Цикл  // содержание документа
    
      // формирование табличной части документа
   
        номен = Справочники.Статьи_загрузки_плана;
        Если (СокрЛП(Выборка.Fields.Item("Наименование").Value)<>"") тогда
          элементСсылка = номен.НайтиПоНаименованию(СокрЛП(Выборка.Fields.Item("Наименование").Value));
            если НЕ элементСсылка.Пустая() тогда
                   Категория=элементСсылка;
            конецЕсли;
        конецесли;
        i=i+1;    // номер строки

        НоваяСтрока = Таблица.Добавить();
        НоваяСтрока.Ном_строки=i ;
        НоваяСтрока.Наименование = СокрЛП(Выборка.Fields.Item("Наименование").Value);
        НоваяСтрока.Ед= СокрЛП(Выборка.Fields.Item("Ед").Value);
        НоваяСтрока.Кол= СокрЛП(Выборка.Fields.Item("Кол").Value);
        НоваяСтрока.Цена=СокрЛП(Выборка.Fields.Item("Цена").Value);
        НоваяСтрока.Сумма=СокрЛП(Выборка.Fields.Item("Сумма").Value);
       
       
        Если (СокрЛП(Выборка.Fields.Item("Наименование").Value)<>"") тогда
         НоваяСтрока.Категория=Категория;
        конецесли;   
       
        // в зависимости от категории добавляем в документ
        Сообщить (НоваяСтрока.Наименование);
        
        НоваяСтрокаТЗ= ТЗ1.Добавить();
       
        НоваяСтрокаТЗ.Наименование=НоваяСтрока.Наименование;
        НоваяСтрокаТЗ.Ном_строки=НоваяСтрока.Ном_строки;
        НоваяСтрокаТЗ.Категория=НоваяСтрока.Категория;
        НоваяСтрокаТЗ.Ед=НоваяСтрока.Ед;
        НоваяСтрокаТЗ.Кол=НоваяСтрока.Кол;
        НоваяСтрокаТЗ.Цена=НоваяСтрока.Цена;
        НоваяСтрокаТЗ.Сумма=НоваяСтрока.Сумма;
       
       
       
        Выборка.MoveNext();
     
     КонецЦикла;
     Выборка.Close();   
     Эксель.Application.Quit();


КонецЦикла; 
 

  ЭлементыФормы.ТЗ1.СоздатьКолонки();
всё работает, но медленно
в процедуре использую 2-ва метода загрузки из Excel
1-метод отрабатывает быстро
Код:
 ТекстЗапроса =
      "SELECT
      | Наименование AS Наименование,
      | Ед AS Ед,
      | Кол AS  Кол,
      | Цена AS Цена,
      | Сумма  AS Сумма
      |FROM
      |[A4:F]
      |";
     
      Выборка = Новый COMОбъект("ADODB.Recordset");

      Попытка
         Выборка.Open(ТекстЗапроса, Connection,,,);
      Исключение
         Сообщить ("Проблемы с выполнением запроса");
         Возврат;
      КонецПопытки;
2-метод - используется для загрузки данных всего из 3-ёх ячеек файла, так как там нет заголовков -отрабатывает невозможно долго.
Код:
Попытка
         Эксель = новый COMОбъект("Excel.Application");
      Исключение
         Сообщить("Ошибка подключения к EXCEL Excel.Application");
         Возврат;
      КонецПопытки;    
         сообщить("УСПЕШНО EXCEL");   

    // формирование шапки документа
         Книга = Эксель.WorkBooks.Open(ЭлементМассива.ПолноеИмя);
         Лист = Книга.WorkSheets(1);
                
         Объект= СтрЗаменить(СокрЛП(Лист.Cells(1,1).Value), "Объект: ", "");
         Организация= СтрЗаменить(СокрЛП(Лист.Cells(2,1).Value), "Организация: ", "");
         Суммадоговора= Число(СокрЛП(Лист.Cells(2,6).Value));
         ПутьЗагрузки=ЭлементМассива.ПолноеИмя;
         ФайлЗагрузки=ЭлементМассива.Имя;
КАК УСКОРИТЬ ЗАГРУЗКУ?
Ответ:
Балин, тут как минимум 5 действий, какое именно?
Вопрос: Метод недоступен на клиенте [решено]

1С 8.3 УФ. Создал свой общий модуль мой_ОбщегоНазначенияКлиентСервер, поставил те же три галочки как и в типовом ОБщегоНазначенияКлиентСервер. Вызываю из формы элемента справочника из процедуры На клиенте Функция и своего модуля: Пишет "Метод недоступен на клиенте". Отсюда же вызываю процедуру ОбщегоНазначенияКлиентСервер.СообщитьПользователю - отрабатывает. Неправильно создал свой общий модуль?
Ответ: Я прошу прощения, вызывал неправильно...... Так все работает
Вопрос: Не отрабатывает выбор версии платформы в общем списке баз

Коллеги, помогите решить ситуацию: в списке баз явно указана версия платформы Version=8.3.12, а запускается все равно установленная последняя платформа 8.3.13 (сервер 12-ый). Если поставить параметр DefaultVersion=8.3.12 в файле настройки 1CEStart - стартует нужная.
Ответ: () тут 8.3.12.1529, спасибо.
Вопрос: Регламентное задание не отрабатывает при закрытой консоли заданий

В продолжение темы
Регламентное задание отрабатывает только при открытой консоли заданий.
Клиет 1с установлен на 1 сервере,сервер 1с на другом...При открытой консоли заданий все работает,при закрытой(как оказалось)-нет.Возможно ли такое вообще,и как с этим бороться(1с 8.1,клиент-сервер)
Ответ: Dethmontt, Это все понятно...У меня вопрос заключается в том,что не работает мое рз как должно было.Заметил,что если консоль заданий при выполнении рз закрыта,то последнее не выполняется.