Linnik Galina

20
Рейтинг

lgg



  •   Регистрация: 11.11.2009 (14 лет назад)

  •   Был(а) на сайте: 23.04.2024

Друзья
  • Воротягин Алексей
  • Дмитрий Малышев
  • Сергей
Подписчики 5

Рейтинг 20

Внешняя печатная форма ТОРГ-26 (Заказ) для УТ 10.3 (обычное приложение)

Отчеты и формы Бухгалтер Платформа 1С v8.3 1С:Управление торговлей 10 Розничная и сетевая торговля (FMCG) Оптовая торговля, дистрибуция, логистика Россия Windows Абонемент ($m) Внешняя обработка (ert,epf) Печатные формы

Форма ТОРГ-26 (заказ) применяется для оформления продажи товаров по предварительным заказам. Данная внешняя печатная форма позаоляет печатать форму ТОРГ-26 (заказ) из документа "Реализация товаров и услуг".

1 стартмани

20.01.2013    4958    24    lgg    1       

2

Обработка для изменения даты документа и его движений без перепроведения

Инструменты и обработки Для всех Платформа 1С v8.3 Конфигурации 1cv8 Windows Абонемент ($m) Внешняя обработка (ert,epf) Корректировка данных

Иногда возникает необходимость изменить дату документа в закрытом периоде. Перепроведение может изменить движения документа по регистрам, например, могут быть списаны другие партии товара с другой себестоимостью. При этом изменится финансовый результат, а закрытом периоде этого произойти не должно! Если у Вас возникла подобная проблема, то Вам точно пригодится моя обработка.

1 стартмани

16.12.2012    6877    70    lgg    10       

5

Комментарии

DevКак изменить значения в ячейках таблицы Excel используя технологию ADO#10 22.12.23 19:57
(9)
Цитата
А прочитать содержимое ячеек получается? Если да, то все-таки неправильно открыт файл, не с теми параметрами.
Да. Прочитать получается.

(9)
Цитата
выбор драйвера делал программно (в коде), а от чего он зависел - уже не помню, кажется от формата файла: XLS или XLSX
от формата. На самом деле я это делаю
Код
      
Если Найти(ВРег(Файл.Расширение), "XLSX") > 0  ИЛИ
         Найти(ВРег(Файл.Расширение), "XLSM") > 0 Тогда
            СтрокаПодключения = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + СтруктураПараметров.ИмяФайла;
            СтрокаПодключения = СтрокаПодключения + "; Extended Properties=""Excel 12.0 Xml;HDR=NO"";";            
      Иначе
            СтрокаПодключения = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source = " + СтруктураПараметров.ИмяФайла;
            СтрокаПодключения = СтрокаПодключения + "; Extended Properties = ""Excel 8.0;HDR=NO;IMEX=1"";";
      КонецЕсли; 
      СтрокаПодключения = СтрокаПодключения +  "Mode=ReadWrite;";


Но, тот самый "вредный" файл с расширением xlsx поэтому в данном случае дело не в глюке драйвера Jet.
Пока проблему не смогла решить.
DevНе открывается книга Excel при использовании технологии OLE#5 22.12.23 17:15
(4) Есть внешние источники данных, макросы. Но, даже, если все отключаю, не могу открыть из 1С.
Размер немного больше мегабайта.
30 листов,
В том то и дело, что отдать нужно как есть, только заполненным. Они дальше формируют отгрузку при помощи заполненного заказа. Сейчас маркетолог заполняет ручками. Но там 300+ строк (((
DevКак изменить значения в ячейках таблицы Excel используя технологию ADO#7 22.12.23 17:08
(4)
Цитата
Q =
UPD ATE [Sheet1$A2:C100] a
SE T a.F2 = "123", a.F3 = "456"
WHERE a.F1 = "XXX";
Спасибо.
Это мне не понятно. Скажите, а что за параметр в квадратных скобках?
DevНе открывается книга Excel при использовании технологии OLE#3 22.12.23 16:50
(2) да. Есть шаблон, который нужно заполнять данными документа.
DevКак изменить значения в ячейках таблицы Excel используя технологию ADO#6 22.12.23 16:49
(5)
Цитата
RecordSet1.ActiveConnection=Connection;
RecordSet1.CursorType = 3;
RecordSet1.CursorLocation=3;
RecordSet1.LockType=3;
Эти манипуляции тоже не помогли. Глючит, как и прежде на строке
RecordSet.Fields(0).Value = "!ТЕСТ ADODB!";
Насчет RecordSe t1.Update() Вы правы. Добавила, но до этого не доходит.
DevНе открывается книга Excel при использовании технологии OLE#1 22.12.23 15:05
Доброго времени суток, коллеги.
Возникла проблема: есть процедура выгрузки/редактирования таблицы Excel при помощи технологии OLE/ Большинство файлов, приходящие от поставщиков благополучно открываются и процедура работает. Но есть один поставщик, файлы которого процедура не может открыть.
Код
   Excel = Новый COMОбъект("Excel.Application");
   Попытка
      Excel.WorkBooks.Open(ПутьКФайлу);
      Состояние("Обработка файла Microsoft Excel...");
   Исключение         
      Сообщить("Ошибка при открытии файла с помощью Excel! Загрузка не будет произведена!");
      Сообщить(ОписаниеОшибки());
      Excel.workbooks.Close();
      Excel.Quit();
      Возврат;
   КонецПопытки;

Собственно дальше процедура зависает. Исключение не возникает, ошибки нет, Процедура просто висит. В диспетчере вижу, что есть активный процесс Excel. Можно ждать сколько угодно....
Думаю, что проблема в самом файле. В Excel он благополучно открывается.
Прошу помощи сообщества.
DevКак изменить значения в ячейках таблицы Excel используя технологию ADO#3 22.12.23 13:46
(2)
Спасибо. Увы, не помогло.
Добавление в строку подключения
Цитата
Mode=ReadWrite;I
никак не повлияло на работу.
Цитата
IMEX=0;
- вызвало исключение "(Microsoft Access Database Engine): Невозможно найти устанавливаемый ISAM."
DevКак изменить значения в ячейках таблицы Excel используя технологию ADO#1 22.12.23 5:16
Доброго времени суток, коллеги.
Столкнулась с проблемой.
Нужно заполнить таблицу Excel по некому шаблону (довольно сложные таблицы), Нужно заполнить этот шаблон данными из документа 1С. Файлы большие и ole на некоторых не просто тормозит, а уходит и не возвращается. При помощи ADO все читается на ура. Но нужно внести новые значения в некие позиции, не меняя форматирования и пр. И тут возникает проблема. Читаю все строки листа Excel и в нужные позиции вношу изменения в соотвтетствии с документом. Если без лишних подробностей то код такой:
Код
    Connection = Новый COMОбъект("ADODB.Connection");
   СтрокаПодключения = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + ПутьКФайлу;
   СтрокаПодключения = СтрокаПодключения + "; Extended Properties=""Excel 12.0 Xml;HDR=NO"";";            
               
   Connection.Open(СтрокаПодключения);
    Catalog = Новый COMОбъект("ADOX.Catalog");                                                
    Catalog.ActiveConnection = Connection;          
      
   Счетчик      = 1;
   ИмяТаблицы    = "";
   СписокЛистов  = Новый СписокЗначений;   
   Для Каждого Table ИЗ Catalog.Tables Цикл
      Если НомерЛиста = Счетчик Тогда
         ИмяТаблицы = Table.Name;
      КонецЕсли; 
      СписокЛистов.Добавить(Table.Name, "Лист " + Счетчик); 
      Счетчик = Счетчик + 1;            
   КонецЦикла;         
      
   Если ПустаяСтрока(ИмяТаблицы) Тогда
      Connection.Close();
      Возврат;
   Иначе   
      Command   = Новый COMОбъект("ADODB.Command");            
      RecordSet = Новый COMОбъект("ADODB.RecordSet");
      
        Command.ActiveConnection = Connection;               
      Command.CommandText = "SEL ECT * FR OM [" + ИмяТаблицы + "]";   
      Command.CommandType = 1;
                  
      RecordSet         = Command.Execute();
      КоличествоКолонок = RecordSet.Fields.Count;
      
      Счетчик = 1;
      
      Пока НЕ RecordSet.EOF() Цикл
           Если Счетчик = 1 Тогда
               RecordSet.Fields(2).Value = "ТЕСТ ADODB!!!";
               Прервать;
           КонецЕсли;
             RecordSet.MoveNext();
         Счетчик = Счетчик + 1;
      КонецЦикла;
    КонецЕсли;
   
Connection.Close();

Смысл всего этого - в 3-ю колонку первой строки пытаюсь записать текст "ТЕСТ ADODB!!!"
Но это не прокатывает. Ошибка "Текущий объект Recordset не поддерживает обновление. Это связано с ограничением поставщика или с выбранным типом блокировки".
Можно пойти от обратного - по данным запроса к документу (например по штрихкоду товара) искать ячейки на листе в которые нужно внести данные, но с запросом UPDATE я не справилась.
Может быть кто-нибудь делал что-либо подобное?
Прошу помощи.