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

Хранилище

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

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



> Номер строки табличного документа - Табличной части          
Gigi Подменю пользователя
сообщение 25.10.17, 22:31
Сообщение #1

Оратор
*****
Группа: Пользователи
Сообщений: 498
Спасибо сказали: 5 раз
Рейтинг: 0

Привет всем!
Заранее извиняюсь за речи (за которые был предупрежден) вместо кода .. который никак не могу найти.
Просто удивляюсь как иногда опять для простой ерунды нужно искать рыть.. то там, то сям ... без конца края. Аж весь интернет перекапывать.... главное по ерунде
Все перерыл .. синтаксис "помощник" форумы, статьи ...
[необходимо зарегистрироваться для просмотра ссылки]
Работа с выделенными областями табличного документа
[необходимо зарегистрироваться для просмотра ссылки]
[необходимо зарегистрироваться для просмотра ссылки]
И опять все что угодно только не та ерунда, которая нужна.
Если кто знает VBA ... для сравнения инфу про указанную тему можно найти ну просто где угодно. Куда бы Вы не лез ... везде можно найти как узнать номер строки или столбца таблицы. И это просто азы ... команды на пример типа :
MsgBox (ActiveCell.Address)
MsgBox (Range(ActiveCell.Address).Row)
MsgBox (ActiveCell.Row)
MsgBox (ActiveCell.Column)

А в 1С-ке точно так же как в Эксель просто получить номер строки или колонки целая проблема что ли? Да это же мелочь. Которая по идее должна быть без проблем реализуема и инфа везде доступна.
Вот методы тыка.. вынужденные ..
ТекущееПолеЗначение=ТаблДокумент.ТекущаяОбласть.Текст;
Предупреждение(ТекущееПолеЗначение); // Ну это просто текст текущей ячейки
//А как получить текущий номер строки табличного документа?

//ТекущееТекущаяСтрокаНомер=ТаблДокумент.ТекущаяОбласть.... И дальше как? После точки в выпадающем меню команд ничего нет ...
// вернее все есть кроме чего то похожего на получения номера строки или столбца
// Как получить номер строки?
//......ПолучитьИдентификатор(); // Так годится для табличной части, а такой команды нет в выпадающем меню возникающим после точки

Короче никак самому не получается получить НОМЕР СТРОКИ! Не смотря на до предела простой вопрос.
Ладно! Опять извиняюсь ...
короче опять нужна помощь
Буду признателен!

Сообщение отредактировал Vofka - 26.10.17, 7:11

Vofka Подменю пользователя
сообщение 26.10.17, 7:17
Сообщение #2

У нас здесь своя атмосфера...
***********
Группа: Основатель
Сообщений: 13948
Из: Киев
Спасибо сказали: 4514 раз
Рейтинг: 3635.6

ТаблДокумент.ТекущаяОбласть.Верх
ТаблДокумент.ТекущаяОбласть.Низ
ТаблДокумент.ТекущаяОбласть.Лево
ТаблДокумент.ТекущаяОбласть.Право


А лучше опишите задачу. А то как обычно.

Спасибо сказали: Gigi,

Vidocq05 Подменю пользователя
сообщение 26.10.17, 8:31
Сообщение #3

Завсегдатай
Иконка группы
Группа: Местный
Сообщений: 214
Из: Сумы
Спасибо сказали: 38 раз
Рейтинг: 0

Gigi @ Вчера, 23:31 * ,

ОблИмя = ТаблДокумент.ТекущаяОбласть.Имя;
НомерСтроки = Сред(ОблИмя,2,1);


Пардон. То было только до 10 строк.
ОблИмя = ТаблДокумент.ТекущаяОбласть.Имя;
КоличСимв = Найти(ОблИмя,"C")-2;
НомерСтроки = Сред(ОблИмя,2,КоличСимв);

Спасибо сказали: Gigi,

Gigi Подменю пользователя
сообщение 26.10.17, 14:28
Сообщение #4

Оратор
*****
Группа: Пользователи
Сообщений: 498
Спасибо сказали: 5 раз
Рейтинг: 0

ОблИмя = ТабДокумент.ТекущаяОбласть.Имя;
КоличСимв = Найти(ОблИмя,"C")-2;
НомерСтроки = Сред(ОблИмя,2,КоличСимв);
Предупреждение(ОблИмя);
Предупреждение(НомерСтроки);

Работает! Наконец то …
Да .. наверно это надо отпраздновать.
Но в VBA просто пишешь ActiveCell.Row и все. Без парса …
Хотя что касается такого варианта…
Верх=ТабДокумент.ТекущаяОбласть.Верх;
Низ=ТабДокумент.ТекущаяОбласть.Низ;
Лево=ТабДокумент.ТекущаяОбласть.Лево;
Право=ТабДокумент.ТекущаяОбласть.Право;
Сообщ="Верх - "+Верх+Символы.ПС+"Низ - "+Низ+Символы.ПС+"Лево - "+Лево+Символы.ПС+"Право - "+Право;
Предупреждение(Сообщ);

Тут тоже нормально. Выдает номер без использования строковых функций.
Только до конца не догоняю, при чем тут Вниз, Вправо и Влево руля ))))
В VBA просто ActiveCell.Row и все … но в 1С для табличного документа почему то нет такой команды:
ТабДокумент.ТекущаяОбласть.НомерСтроки. Т.е. таким же макаром как в VBA.
Но ладно. Не важно. Главное работает.
Спасибо всем!

П.С. (много букв)
Цитата(Vofka @ 26.10.17, 8:17) *
А лучше опишите задачу. А то как обычно.

Задача?
Это долгий разговор. И вообще тут не любят длинные дискуссии. Был предупрежден модератором за нарушение ...
Но ладно... может изложу ..
Но предупреждаю заранее... много нюансов.. поэтому коротко объяснить не получиться.

Gigi @ Сегодня, 15:07 * ,
Ладно, так и быть излагаю. И ну и что, что сообщение получилось длинное.
За одно еще спрошу, какой вариант лучше для поставленной цели. Вариант первый второй или не важно. И еще спрошу правильный ли путь выбрал для цели вообще.
Так вот, в чем суть цели?
Дело в том, что я пишу прогу загрузки данных из табличного документа на сервер. Которую уже закончил. Т.е. примерно такую же программу, как ту, которую можно скачать готовую … в виде обработки на сайте 1С. Так вот, в подобных обработок загрузки все вроде нормально, только я хочу сделать чуть большее. И доработать.
А именно, научить МАШИНУ ДУМАТЬ!
Да, цель не так уж и простая!
Сделать так, что бы машина умела, анализировать и делать выводы.
И почему так негодую? Потому, что цель не простая, а я должен париться с какой-то выше указанной ерундой.
Допустим обычная обработка по загрузке данных. И допустим, вопрос загрузки не по созданию элементов на сервере, а загрузки по способу перезаписи уже созданных предположим документов.
Для этой цели естественно нужны реквизиты поиска и значения поиска.
Допустим реквизиты поиска: «ОтчетныйМесяц» и «ЮридическоеЛицоОтчета».
Так вот, в обычном случае, данные можно записать по соответствию найденных значений в реквизитах поиска. Но это в том, случае если эти самые значения поиска нигде в списке не дублируются. А что если они местами дублируются? И что если в таком случае нужно на каждый дубль записать разные значения?
А как быть в таком случае?
И тут, на случай дуля значений поиска, как и в отдельных командах поиска, так и в готовых обработках данные можно записать только в первое совпадение, или записать одно и то же во все совпадения без разбору.
А нужно, что бы машина была чуть умнее.
А именно, что бы дублируемые значения совпадения на сервере, она записывала в соответствии порядка таких же совпадений в табличной части.
А для этого машина должна во первых анализировать и зарегистрировать совпадения. И на клиенте (в табличном документе) и на сервере. Т.е. анализировать и делать выводы как поступать.
Так вот, для указанной цели лично у меня такое решение.
Сделать два подхода загрузки данных по поиску.
С использованием в массива или структуры. Конечно, тут есть очень удобна таблица значений…. но блииин.. она не поворотлива и ленива. Ее ведь нельзя гонять с сервера на клиент . И поэтому на хрен она тогда нужна, если нельзя, вот это понять не могу! )))))
Так вот, сделать два цикла загрузки. Первый цикл загружает данные по не дублируемым совпадениям, и при этом параллельно считает и индексирует каждое дублируемое совпадение и собирает все это в массив или структуру. И делает это и на сервере, и на клиенте. Но это первый цикл загрузки. После которого, уже запускается второй цикл, который загружает данные по дублируемым значениям поиска, по соответствующему обозначенному в массиве индексу дубля.
Т.е. на пример если указанное загонять в структуру, то будут две структуры в таком формате:
СтруктураДублируемыхЗначенийПоиска_клиент(ИндексДубля, НомерСтроки_N)  // для табличного документа
СтруктураДублируемыхЗначенийПоиска_сервер(ИндексДубля, КодИлиОбъектДокумента) // Для сервера

И получив эти структуры уже можно загружать данные соответственно по индексу дубля.
Вот собственно и решение. И вот для чего был нужен этот самый номер строки табличного документа.
И ТАКОЙ ФИШКИ НЕТ В ОБРАБОТКЕ ЗАГРУЗКИ СКАЧЕННОЙ С САЙТА 1С.
Но самое смешное, что задача не так уж и сложная, но не сильно легкая. Казалось бы… нужно заставить машину думать и анализировать. И казалось бы … цель нормальная. Но когда для поставленной такой цели на первых, же этапах этот достающий мор головы … с этим несчастным номером строки… блиииин. Вот что, доводит …. Когда не то, что научить машину анализировать, но получить какой то ерундовый номер строки, это еще оказывается нужно еще искать инфу …. и гадать как сделать эту ерунду. Вот что достает.
Ладно! В двух словах объяснить не получилось.
Часто на форуме говорят: изложите не в отдельном моменте, а в целом задачу. Типа для полной картины понимания. Часто это слышу.
Я то не против изложить, всю задачу тут объяснять это …. ну понятно же… длинные речи. Зачем это здесь нужно?
Поэтому, ладно … в данном случае решил поступить, как советуют и изложил всю цель. И вот и задача в целом, а не в отдельном вопросе.
Ладно… если кто подскажет другие решения буду признателен.
Я просто пока не взялся реализовывать решение. Поэтому может, есть другие способы. На пример, какие-то команды, которые сократят написание строк кода и при этом оптимизируют скорость выполнения.
Так что, буду признателен за толковый совет для изложенной цели.


Сообщение отредактировал Vofka - 26.10.17, 15:44

Vofka Подменю пользователя
сообщение 26.10.17, 15:46
Сообщение #5

У нас здесь своя атмосфера...
***********
Группа: Основатель
Сообщений: 13948
Из: Киев
Спасибо сказали: 4514 раз
Рейтинг: 3635.6

Gigi, если нету сил держать в себе кучу букв, то хотя бы оборачивайте их в тег "Спрятать":


Спасибо сказали: Bernet, Vidocq05,

Gigi Подменю пользователя
сообщение 26.10.17, 16:58
Сообщение #6

Оратор
*****
Группа: Пользователи
Сообщений: 498
Спасибо сказали: 5 раз
Рейтинг: 0

Vofka @ Сегодня, 16:46 * ,
Это я с вас прикалываюсь уважаемые! smile.gifsmile.gif
Я объяснил всю цель!
Цитата(Vofka @ 26.10.17, 8:17) *
А лучше опишите задачу. А то как обычно.

Это я уже неоднократно слышал smile.gifsmile.gif Вот и психанул и объяснил smile.gifsmile.gif
И ВОТ ВАМ И ВСЯ ЗАДАЧА!
ЧИТАЙТЕ НА ЗДОРОВЬЕ! smile.gifsmile.gif
И это для того,что бы следующий раз не доставали..... Объясни всю цель... нужна полная картина и прочими глупостями. Тоже мне ... анегдот!
Вот вам и вся ЦЕЛЬ и ПОЛНАЯ КАРТИНА! И вот вам и анекдот!
Надеюсь уже теперь после этого и следующий раз я такие неуместные требования больше не услышу.
И речь будет только по заданному прямому вопросу. Без необходимости таких объяснений. Да уж...
Так что,уже с вопросом полной картины подумают ... нужна ли она вообще.
Надеюсь! smile.gifsmile.gif
Ладно! Всем спасибо за помощь!



Vofka Подменю пользователя
сообщение 27.10.17, 7:19
Сообщение #7

У нас здесь своя атмосфера...
***********
Группа: Основатель
Сообщений: 13948
Из: Киев
Спасибо сказали: 4514 раз
Рейтинг: 3635.6

faceoff.gif

Спасибо сказали: Vidocq05,

Не нашли ответа на свой вопрос?
Зарегистрируйтесь и задайте новый вопрос.


Ответить Новая тема
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

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