Как зарегистрироваться на форуме?

Блог имени Vlad_imir (темы, которые создал(а) участник форума Vlad_imir)

[Делимся опытом] Как очистить формат ячейки Excel в файле созданном в 1С

Программы серии 1C для бухгалтерии Казахстана (1С:Предприятие, Бухгалтерский учет, Зарплата и Управление Персоналом, Управление Торговлей, Торговля и Склад, Зарплата и Kадры и т.д.).

[Делимся опытом] Как очистить формат ячейки Excel в файле созданном в 1С

Сообщение Vlad_imir » 23 мар 2011, 09:13

При сохранении в 1С файла в формате Excel существует проблема (не просто проблема, а головная боль)) того, что в ячейках Excel остается специфический формат 1С, который мешает макросу "видеть" эту ячейку. Очистка ячейки от форматирования, изменение формата ячейки в этом случае положительного результата не дают! Что делать? Попробуйте такой вариант:

For i = 8 To Columns("A").Rows(65536).End(xlUp).Row
'--очистка формата двойным щелчком мыши по ячейке
my_format = ActiveSheet.Cells(i, 2)
ActiveSheet.Cells(i, 2).FormulaR1C1 = my_format
'--//очистка формата двойным щелчком мыши по ячейке
ActiveSheet.Cells(1, 1) = i 'счетчик
Next i

Переменная my_format нужна, потому что напрямую ActiveSheet.Cells(i, 2).FormulaR1C1 = ActiveSheet.Cells(i, 2) - не работает. Переменную my_format я делаю As Variant (лень было поэксперементировать с другими типами)
И еще, повторное прохождение ячеек макросом для форматирования дает ошибку. Поэтому только один раз или ставьте условие на ошибку.
Используя этот вариант, я навсегда избавился от проблем с форматированием ячеек в Excel в файлах созданных в 1С.
Vlad_imir
-------
 
Сообщения: 113
Зарегистрирован: 27 дек 2010, 19:25
Профессия: Преподаватель
Блог имени Vlad_imir
Активность участника


Re: Как очистить формат ячейки Excel в файле созданном в 1С

Сообщение Кайрат-F2 » 23 мар 2011, 13:31

Владимир, не совсем понятно, что делает цикл For i = 8 To Columns("A").Rows(65536).End(xlUp).Row - имеется ввиду, что эта проблема исправляется во всех ячейках первых 8 столбцов таблицы?
Кайрат-F2

 
Сообщения: 37374
Зарегистрирован: 27 янв 2008, 16:54
Откуда: г. Братислава - Словакия
Профессия: IT Специалист
Блог имени Кайрат-F2
Активность участника

    Re: Как очистить формат ячейки Excel в файле созданном в 1С

    Сообщение Vlad_imir » 23 мар 2011, 16:17

    Представьте себе некую таблицу в (на) листе Excel, которая начинается (после шапки) с 8 строки. В первом столбце - наименование товара, во втором штрих-код в виде набора "циферек". Далее столбцы - количество, цена и остаток товара на складе (несколько столбцов нескольких магазинов). Компоненты таблицы клиент собирает из 1С для своих специфических целей. Цель посчитать (просуммировать) остатки, сверить с данными поставщика, отнять остаток от количества поставщика, выяснить ценовую разницу по отдельным магазинам (в магазинах цены разные на один и тот же товар). Так вот, когда данные берутся из 1 С, макрос, который все то, что перечислено, делает, не видит в упор отдельные шрих-коды. В результате невозможно идентифицировать одинаковые товары. Почему? Да потому что 1С форматирует ячейки по-своему. Причем сбросить этот формат очень трудно (это проблема обсуждается на различных форумах по VBA и толком никто не может ничего сказать). Я тоже долго парился над решением этой проблемы и случайно нашел способ, который Вы не найдете нигде. Суть способа в том, что
    my_format = ActiveSheet.Cells(i, 2)
    ActiveSheet.Cells(i, 2).FormulaR1C1 = my_format

    фактически делает условный двойной клик в ячейке и это, как ни странно, сбрасывает формат и ячейка становится "General", что приводит к единому отображению шрих-кодов понятному макросу. В публикации я привел часть кода макроса, который приводит в формат "General" второй столбец таблицы (со шрих-кодами), начиная с 8 строки и по последнюю заполненную строку в таблице по столбцу "A".
    И последнее, Excel и VBA мощная вещь и в этой среде часто дешевле получить требуемые результаты, чем через обработки 1С. У меня, например, был очень заказ, когда пришлось в VBA сделать финансовую модель предприятия за три с половиной года, чтобы найти, где бухгалтер и директор воруют. При этом независимый аудитор подтверждал правильность данных бухгалтера и директора, а специалисты заказчика тоже соглашались с правильностью данных бухгалтера и директора. Модель же в VBA, просчитав все в динамике времени, нашла $50 тыс. недостачи. Заказчик очень щедро рассчитался за работу!
    Vlad_imir
    -------
     
    Сообщения: 113
    Зарегистрирован: 27 дек 2010, 19:25
    Профессия: Преподаватель
    Блог имени Vlad_imir
    Активность участника

    Re: Как очистить формат ячейки Excel в файле созданном в 1С

    Сообщение Кайрат-F2 » 23 мар 2011, 20:41

    Есть пара небольших замечаний:
    1. код привязан строго к диапазону 8 столбцов по 65536 строк. А если надо другой диапазон обработать? Положим в только 3 ячейки? Ну и начиная с версии 2007 можно на одном листе более миллиона строк быть. 65536 это предел в старых версиях Excel
    2. я так понимаю в первой ячейке показывается счетчик сколько ячеек обработано:
      ActiveSheet.Cells(1, 1) = i 'счетчик
      Большинству это не надо
    3. всё равно не понимаю как работает
      Код: Выделить всё
      my_format = ActiveSheet.Cells(i, 2)
      ActiveSheet.Cells(i, 2).FormulaR1C1 = my_format

      кажется можно тип ячейки изменить, я когда-то делал, но там всё зависит от того какая версия Excel используется. В разных версиях Excel и разных языках по-разному. Надо вспомнить, я делал для русского Excel, но сейчас так не вспомню
    4. и главное, думаю что Вы привязывайтесь к конкретной таблице: начиная с 8 строки, только в таких-то столбцах. Т.е. чуть таблица изменится, то надо макрос менять. Это неправильно. Лучше сделать универсальный вариант. Есть такая переменная
      Код: Выделить всё
      Selection
      , ее можно использовать как диапазон строк. Тогда пользователь выделяет нужный диапазон ячеек или даже одну ячейку, вызывает макрос и тип меняется
    Последний вариант сможете сделать?
    Кайрат-F2

     
    Сообщения: 37374
    Зарегистрирован: 27 янв 2008, 16:54
    Откуда: г. Братислава - Словакия
    Профессия: IT Специалист
    Блог имени Кайрат-F2
    Активность участника

      Re: Как очистить формат ячейки Excel в файле созданном в 1С

      Сообщение Vlad_imir » 26 мар 2011, 13:46

      "Выделить все" не пойдет. Представьте, если база данных 40 тысяч строк, это сколько ждать пока макрос отформатирует ячейки. Excel не реляционная база данных! (хотя в Excel, иной раз, сложные вычисления происходят быстрее чем в 1С, однако Excel - это Excel). А потом, какая разница с 8 строки или 5, с 1 или 10 столбца. Это примерный код и изменить его "пара секунд". У меня ученики (менеджеры, бухгалтеры...), владея основами VBA, делают это легко. В этом нет ничего сложного. Хотя, для 1С - ников код VBA, VB, ActionScript часто непонятен. Тоже самое можно сказать о тех, кто пытается изучить программирование в 1С, зная VBA, VB, ActionScript. Знаю только одно, по себе, VBA, VB, ActionScript можно изучить самостоятельно, программирование в 1С - сложно. В сравнении с VBA, VB, ActionScript в 1С, на мой взгляд, много нелогичного (хотя это на первый взгляд, что и тормозит изучение).
      Vlad_imir
      -------
       
      Сообщения: 113
      Зарегистрирован: 27 дек 2010, 19:25
      Профессия: Преподаватель
      Блог имени Vlad_imir
      Активность участника

      Re: Как очистить формат ячейки Excel в файле созданном в 1С

      Сообщение Кайрат-F2 » 26 мар 2011, 14:10

      Excel можно ускорить обработку большого количества ячеек. Есть несколько хитростей. Сейчас точный код с ходу не скажу, но делал примерно так: делал Excel невидимым (Вам это необязательно), далее перед циклом изменений ставил такой код (а вот это обязательно):
      Код: Выделить всё
      Application.EnableCancelKey = xlDisabled
      Application.ScreenUpdating = False
      Application.DisplayAlerts = False

      а в конце такой:
      Код: Выделить всё
      Application.EnableCancelKey = True
      Application.ScreenUpdating = True
      Application.DisplayAlerts = True

      попробуйте и сравните насколько быстрее будет работать на нескольких тысячах строк
      Кайрат-F2

       
      Сообщения: 37374
      Зарегистрирован: 27 янв 2008, 16:54
      Откуда: г. Братислава - Словакия
      Профессия: IT Специалист
      Блог имени Кайрат-F2
      Активность участника

        Re: Как очистить формат ячейки Excel в файле созданном в 1С

        Сообщение biluha » 26 мар 2011, 17:45

        Господа. а поподробнее, для простых смертных, можно? О чем речь в выших сообщениях? Очень интересно!???
        Меня волнует: Как в Excel в таблицах, скопированных из 1С, снять "программу" 1С в пустых ячейках?
        В ячейках, где есть числа, я меняю точку на запятую, запятую на запятую, а в датах точку на точку. Тогда Excel считает без проблем. Но пустые ячейки приходиться Delate, на что уходит много времени.
        Аватара пользователя
        biluha

         
        Сообщения: 2059
        Зарегистрирован: 22 ноя 2008, 17:28
        Профессия: Бухгалтер
        Блог имени biluha
        Активность участника

        Re: Как очистить формат ячейки Excel в файле созданном в 1С

        Сообщение Кайрат-F2 » 26 мар 2011, 18:49

        Я честно не совсем понял, что Вы хотели спросить. Я понял, что пустые ячейки удаляйте, а что значит снять "программу" 1С в пустых ячейках? Что-то меня Ваши изменения точек и запятых тое непонятно. Может кто еще использует 1С и Excel объяснит вопрос?
        Кайрат-F2

         
        Сообщения: 37374
        Зарегистрирован: 27 янв 2008, 16:54
        Откуда: г. Братислава - Словакия
        Профессия: IT Специалист
        Блог имени Кайрат-F2
        Активность участника

          Re: Как очистить формат ячейки Excel в файле созданном в 1С

          Сообщение Кайрат-F2 » 27 мар 2011, 00:37

          biluha, а можете приложить к сообщению проблемный документ до исправления и после.

          Владимир, код который я выше привел ускорит обработку если надо обработать тысячи ячеек. При изменении ячеек почти всё время тратится не на фактическое изменение, а на отображение изменений на экране. Мой код отключает отображение пока не закончится изменения ячеек. Всё работает по принципу "половину работы не показывать".
          Кайрат-F2

           
          Сообщения: 37374
          Зарегистрирован: 27 янв 2008, 16:54
          Откуда: г. Братислава - Словакия
          Профессия: IT Специалист
          Блог имени Кайрат-F2
          Активность участника

            Re: Как очистить формат ячейки Excel в файле созданном в 1С

            Сообщение biluha » 27 мар 2011, 01:19

            Я сама объясню.
            Копируем в 1С таблицу, например Ведомость по з/плате, переносим её в Excel. Далее нужно сделать дополнительные расчеты.Я добовляю столбец или строку и пытаюсь выполнить расчет по формуле по строке, протягиваю по столбцу, заложенную формулу. но в ячейке итогов выскакивает #ЗНАЧ!-Ошибка! В таблице- где-то попадаются пустые ячейки, которые участвуют в формуле. Тогда я по пустым ячейкам прохожу Delete, т.е. в перенесенных таблицах остаются заложенные формулы с 1С - ну это я так понимаю, и Excel чудненько считает. А запятые меняю в числах, перенесенных из1С, например: 42,126,742.23, а в самом деле 42126742,23. Я ни чего не понимаю в програмировании, выполняю то - до чего "дохожу" сама.Выражаюсь своим "языком"
            Чтобы поменять запятые и точки, я выделяю таблицу, захожу в меню "Правка"-"Заменить" и в верхней строке ставлю -(,)-заменить все! Запятые исчезают, затем -в верхней строке ставлю-( .)- , а в нижней -(,)-заменить все! и ненужные(с которыми Excel не считает), разделители разрядов исчезают, а нужные устанавливаются. А вот очищать пустые ячейки -долго! Это каждую или сразу несколько(которые рядом) нужно выделить и очистиь,т.е. Delate
            Мне кажется, что реестры к Ф300 по этой же причине не совмещаются с СОНО - из-за разднлителей разрядов.
            Аватара пользователя
            biluha

             
            Сообщения: 2059
            Зарегистрирован: 22 ноя 2008, 17:28
            Профессия: Бухгалтер
            Блог имени biluha
            Активность участника

            Re: Как очистить формат ячейки Excel в файле созданном в 1С

            Сообщение biluha » 27 мар 2011, 01:22

            Кайрат-F2 писал(а):biluha, а можете приложить к сообщению проблемный документ до исправления и после.

            Владимир, код который я выше привел ускорит обработку если надо обработать тысячи ячеек. При изменении ячеек почти всё время тратится не на фактическое изменение, а на отображение изменений на экране. Мой код отключает отображение пока не закончится изменения ячеек. Всё работает по принципу "половину работы не показывать".

            Коды вижу, а вот-куда их проставить- не догоняю.
            Аватара пользователя
            biluha

             
            Сообщения: 2059
            Зарегистрирован: 22 ноя 2008, 17:28
            Профессия: Бухгалтер
            Блог имени biluha
            Активность участника

            Re: Как очистить формат ячейки Excel в файле созданном в 1С

            Сообщение biluha » 27 мар 2011, 01:32

            Кайрат-F2 писал(а):biluha, а можете приложить к сообщению проблемный документ до исправления и после.

            Владимир, код который я выше привел ускорит обработку если надо обработать тысячи ячеек. При изменении ячеек почти всё время тратится не на фактическое изменение, а на отображение изменений на экране. Мой код отключает отображение пока не закончится изменения ячеек. Всё работает по принципу "половину работы не показывать".

            Тысячи ячеек меня не пугают. я с ними как-то справляюсь, и довольно быстро.
            Но ваше предложение с кодами-заинтриговало. Интересно, что это значит?
            Аватара пользователя
            biluha

             
            Сообщения: 2059
            Зарегистрирован: 22 ноя 2008, 17:28
            Профессия: Бухгалтер
            Блог имени biluha
            Активность участника

            Re: Как очистить формат ячейки Excel в файле созданном в 1С

            Сообщение Кайрат-F2 » 27 мар 2011, 01:33

            1С под рукой нет, но сдается мне, что строчки вида 42,126,742.23 можно в самом Excel исправить. Может наши 1С-ники подскажут, как исправить чтобы в 1С сразу показывалось без запятых.

            А вот точку Excel правильно считает как разделитель дробной части. Если первую часть проблемы с запятыми подскажут, то я подскажу что надо сделать, чтобы он правильно принимал точку. В СОНО тоже используется точка, а не запятая.

            Ну и третья проблема с удалением ячеек: я не совсем понял. Может у Вас там пробелы или еще что-то. Тут лучше выложите файл.
            Кайрат-F2

             
            Сообщения: 37374
            Зарегистрирован: 27 янв 2008, 16:54
            Откуда: г. Братислава - Словакия
            Профессия: IT Специалист
            Блог имени Кайрат-F2
            Активность участника

              Re: Как очистить формат ячейки Excel в файле созданном в 1С

              Сообщение biluha » 27 мар 2011, 02:07

              Неужели, я так не понятно пишу? Я не удаляю ячейки, я просто, по ячейкам, где нет чисел(пустым), прохожусь Delate
              Аватара пользователя
              biluha

               
              Сообщения: 2059
              Зарегистрирован: 22 ноя 2008, 17:28
              Профессия: Бухгалтер
              Блог имени biluha
              Активность участника

              Re: Как очистить формат ячейки Excel в файле созданном в 1С

              Сообщение Кайрат-F2 » 27 мар 2011, 02:09

              Вы файл приложите. Может у Вас там пробелы стоят
              Кайрат-F2

               
              Сообщения: 37374
              Зарегистрирован: 27 янв 2008, 16:54
              Откуда: г. Братислава - Словакия
              Профессия: IT Специалист
              Блог имени Кайрат-F2
              Активность участника

                Re: Как очистить формат ячейки Excel в файле созданном в 1С

                Сообщение biluha » 27 мар 2011, 02:56

                ПЯ.xls
                У вас нет доступа для скачивания и просмотра вложений, документации, файлов, изображений в этом сообщении. Доступ для зарегистрированных пользователей. Вы можете бесплатно зарегистрироваться на нашем сайте. Если Вы зарегистрированы, то Вам необходимо нажать опцию "Вход" в вверху страницы (там же находится ссылка на страницу регистрации)
                Аватара пользователя
                biluha

                 
                Сообщения: 2059
                Зарегистрирован: 22 ноя 2008, 17:28
                Профессия: Бухгалтер
                Блог имени biluha
                Активность участника

                Re: Как очистить формат ячейки Excel в файле созданном в 1С

                Сообщение Кайрат-F2 » 27 мар 2011, 03:04

                Так и думал. Это у Вас 1С в таблицах в пустых ячейках вместо пустого места ставит пробел. Опять таки правильнее исправить в 1С. Но если 1С-ники ничего не подскажут, то сделайте так:
                  в меню найдите "Найти Заменить"
                1. в поле "Найти" поставить пробел
                2. поле Заменить не трогать
                3. нажать кнопку Параметры
                4. включить галочку "Ячейка целиком"
                В результате после нажатия кнопки "Заменить всё" получите много радости
                Кайрат-F2

                 
                Сообщения: 37374
                Зарегистрирован: 27 янв 2008, 16:54
                Откуда: г. Братислава - Словакия
                Профессия: IT Специалист
                Блог имени Кайрат-F2
                Активность участника

                  Re: Как очистить формат ячейки Excel в файле созданном в 1С

                  Сообщение biluha » 27 мар 2011, 03:28

                  Кайрат-F2, Огромное спасибо. Вы, своим советом, сэкономили нам уйму времени. А радости моей нет предела. :lol:
                  Аватара пользователя
                  biluha

                   
                  Сообщения: 2059
                  Зарегистрирован: 22 ноя 2008, 17:28
                  Профессия: Бухгалтер
                  Блог имени biluha
                  Активность участника

                  Re: Как очистить формат ячейки Excel в файле созданном в 1С

                  Сообщение Кайрат-F2 » 27 мар 2011, 12:41

                  По поводу пустых ячеек я ВАм объяснил, а по поводу запятых в числе 42,126,742.23 может 1С-ники подскажут
                  Кайрат-F2

                   
                  Сообщения: 37374
                  Зарегистрирован: 27 янв 2008, 16:54
                  Откуда: г. Братислава - Словакия
                  Профессия: IT Специалист
                  Блог имени Кайрат-F2
                  Активность участника

                    Re: Как очистить формат ячейки Excel в файле созданном в 1С

                    Сообщение biluha » 27 мар 2011, 12:45

                    Кайрат-F2 писал(а):По поводу пустых ячеек я ВАм объяснил, а по поводу запятых в числе 42,126,742.23 может 1С-ники подскажут

                    Я с этой задачей уже справляюсь через "заменить", так жк как с пробелом. Просто я не знала, что в пустых ячейках "пробел" заложен. Он же невидимый. Спасибо Вам ещё раз огромное!
                    А вот, то о чем Вы писали выше с Владимиром, я так и не поняла.
                    Аватара пользователя
                    biluha

                     
                    Сообщения: 2059
                    Зарегистрирован: 22 ноя 2008, 17:28
                    Профессия: Бухгалтер
                    Блог имени biluha
                    Активность участника

                    След.

                    Привет. Мы ищем таланты:
                    • Тебе интересен форум? Ты хочешь участвовать и развивать его?
                    • Тебе интересно в твоей профессии?
                    • Тебе есть чем поделиться из твоего опыта с коллегами на форуме? Есть чем поделиться из собственного опыта, научить или рассказать?
                    Мы ищем таланты, которые помогут развить форум. Что взамен:
                    • Получить приглашение на форум
                    • Радость общения
                    • Совместное развитие
                    Как: об этом написано на странице: http://tandem.f2.kz/

                    Вернуться в 1С Казахстан

                     


                    • Похожие темы
                      Ответы
                      Просмотры
                      Последнее сообщение

                    Кто сейчас на конференции

                    Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 4


                    Лучшие темы за неделю:



                    Вам помог наш сайт?

                    Тогда и мы с радостью примем Вашу помощь
                    Перечислите любую сумму на Билайн-номер +7-777-398-41-00

                    Каждое перечисление поможет форуму!



                    Новые сообщения:

                    [23.04.2024 обновлена] Шаблоны форм на 2024 год для ИС СОНО
                    Кайрат-F2
                    23 апр 2024, 22:30

                    [23.04.2024 обновлена] Шаблоны форм на 2023 год для ИС СОНО
                    Кайрат-F2
                    23 апр 2024, 22:30

                    [23.04.2024 обновлена] Шаблоны форм на 2022 год для ИС СОНО
                    Кайрат-F2
                    23 апр 2024, 22:29

                    [23.04.2024 обновлена] Шаблоны форм на 2021 год для ИС СОНО
                    Кайрат-F2
                    23 апр 2024, 22:28

                    [23.04.2024 обновлена] Шаблоны форм на 2020 год для ИС СОНО
                    Кайрат-F2
                    23 апр 2024, 22:27

                    [23.04.2024 обновлена] Правила заполнения налоговых форм на 2019 год
                    Кайрат-F2
                    23 апр 2024, 22:26

                    Видео о Казахстане, взгляд с другой стороны
                    Кайрат-F2
                    23 апр 2024, 22:12

                    [Новость] pki.gov.kz Национальный удостоверяющий центр РК
                    Кайрат-F2
                    20 апр 2024, 06:23

                    Работа налоговых серверов в 2 квартале 2024 года
                    Кайрат-F2
                    20 апр 2024, 06:23

                    [07.10.2023 обновлена] [e-Salyq Azamat] eSalyq - Мобильное приложение
                    Кайрат-F2
                    18 апр 2024, 15:33

                    [15.08.2023 обновлена] e-Salyq Business - мобильное приложение
                    Кайрат-F2
                    16 апр 2024, 18:27

                    Девальвация или инфляция в Казахстане?
                    Кайрат-F2
                    09 апр 2024, 11:02

                    [Новость] www.esf.gov.kz - Портал по выписке электронных счетов-фактур
                    Кайрат-F2
                    03 апр 2024, 23:10

                    Работа налоговых серверов в 1 квартале 2024 года
                    Кайрат-F2
                    28 мар 2024, 20:26

                    Соболезнуем...
                    Кайрат-F2
                    27 мар 2024, 17:13

                    Экономика Казахстана к 2060 годам и сегодняшней рождаемость
                    Кайрат-F2
                    26 мар 2024, 21:11

                    День благодарности
                    daur
                    03 мар 2024, 16:11

                    Работа сайта и форума bb.f2.kz
                    Кайрат-F2
                    01 мар 2024, 21:19

                    [Новость] Версия ИС СОНО 4.0.38 [29.02.2024]
                    Кайрат-F2
                    01 мар 2024, 20:09

                    [Новость] Предельные цены на нефтепродукты в Казахстане
                    Кайрат-F2
                    28 фев 2024, 11:15

                    Кино: новинки, любимые, советую посмотреть
                    Кайрат-F2
                    23 фев 2024, 12:26

                    Статус "Обрабатывается в ЦУЛС"
                    Кайрат-F2
                    14 фев 2024, 19:37

                    [05.02.2016 обновлена] Обновления "Бухгалтерия для Казахстана" 1С 8.2 редакции 2.0
                    vad1
                    05 фев 2024, 21:41

                    А вы знаете, что.............
                    Кайрат-F2
                    03 фев 2024, 18:53

                    [02.02.2024 обновлена] Правила заполнения налоговых форм на 2018 год
                    Кайрат-F2
                    02 фев 2024, 18:35

                    [Новость] Перспективы развития интернета в Казахстане
                    Кайрат-F2
                    31 янв 2024, 14:50


                    Хостинг предоставлен Компанией Хостинг–Сервис HS.kz