Нашел в Excel 365 функцию "Срез данных", в которой можно выбирать сортировку в умной таблице через вынесенный вверх "Срез данных", когда можно просто кликом делать сортировку или убирать ее.
У меня сейчас есть файл, где есть три макроса, два из которых можно заменить именно этой новой функцией. Первый макрос скрывает готовые заказы, второй - открывает. Файл постоянно дополняется разными пользователями строчками внизу. А третий макрос делает повторную сортировку по дате после внесения нового заказа в самый низ таблицы, его запускают по клику на кнопку макроса для того, чтобы сработала сортировка по дате и заказ "стал" в нужное место в списке.
Родился вопрос - а нельзя ли как-то сделать в Excel еще сортировку по дате при нажатии на некую строчку без использования макросов? Чтобы вообще отказаться от макросов в данном случае?
Т.е. есть таблица с записями
1 ; test 1; 12.02.2024 2; test 2 ; 20.02.2024
Потом пользователь вносит внизу запись 3 ; test 3 ; 15.02.2024
Потом нажимает некую кнопку для сортировки по дате и запись номер 3 помещается между 1 и 2
1 ; test 1; 12.02.2024 3 ; test 3 ; 15.02.2024 2; test 2 ; 20.02.2024
Хотел убрать макросы, т.к. c файлом работают одновременно несколько пользователей, файл стал большой и в последнее время иногда выходит ошибка (раз в 2-3 недели) &H8000FFFF(-2147418113). Временно это лечиться копированием листа и удалением старого листа, а также переименновыванием имен макросов (решение найдено на форуме каком-то). Работа идет через облако MS Teams, с файлом могут работать одновременно и изменять его несколько пользователей. Скорее всего проблема в том, что файл могут сохранять два пользователя одновременно и файл повреждается при этом.
Макрос сортировки по дате самый обычный и работал без проблем 1,5 года
Код
Sub nachdatumsort()
ActiveWorkbook.Worksheets("blatt").AutoFilter.Sort.SortFields.Clear
ActiveWorkbook.Worksheets("blatt").AutoFilter.Sort.SortFields.Add2 Key:= _
Range("T5:T9110"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
xlSortNormal
With ActiveWorkbook.Worksheets("blatt").AutoFilter.Sort
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
End Sub
Есть такой вопрос по Word, не прошу предоставить решение, просто ответить - можно ли это сделать вообще в принципе, ну может еще подсказать - в каком направлении копать.
Первый вопрос. Если открыть файл Word в обычном просмотре с увеличением в 100-120%, то мы видим белый лист в центре и большие черные поля слева и справа. Появился такой вопрос. А можно ли вообше в принципе сделать так, чтобы лист "прилип" к левому краю, а огромное черное поле оказалось справа? Средствами Word'a или VB?
Второй вопрос - можно ли разместить справа форму VB, в которой можно было во множестве выпадающих меню выбирать какие-то значения, а они чтобы попадали на лист слева в соответствующие поля.
Например на листе есть поле - "Обращение", а в меню справа выбираем из выпадающего меню "Господин / Госпожа / Господа" и т.д. И потом в получаем такое вот такое персонализированное предложение. Я просто в Excel такое делал, но там понятно, данные из форму переносим на лист ABC, в ячейку A1. А как это делается в Word - не понимаю.
Третий вопрос. Нашел в Word во вкладке "Разработчик" ссылку на XML-файл. Создал один файл для примера, но не понял, как он вставляется в сам файл. Или он загружается на сайт Microsoft и только оттуда погружается? Потому что у меня появляется справа выпадающее меню XML и ссылки там типа http://schemas.microsoft.com/vsto/samples Или все же он сохраняется в сам файл? И можно ли XML-файл использовать как список данных для выпадающих меню в Word?
Но появилась дополнительная задача, нужно не просто вытягивать данные, количество которых больше 0, а еще вытягивать их отсортированными уже по первой колонке gruppe, чтобы сначала была позиции из 1 группы, потом 2, 10, 22 и т.д.
Вопрос - можно ли это условие как-то еще "засунуть" в формулу или не получиться?
Работаю с запросами через VBA для получения данных с контролера, на котором работает webserver
Есть вот такой код от производителя
Код
Function request(pAdress As String, pBasicAuth As String) As String
Dim objHTTP As Object
Set objHTTP = CreateObject("WinHttp.WinHttpRequest.5.1")
With objHTTP
.Open "GET", pAdress, False
.SetRequestHeader "Authorization", "Bearer" + pBasicAuth
.SetRequestHeader "User-Agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)"
.SetRequestHeader "Content-type", "application/x-www-form-urlencoded"
.Send ("keyword=php")
End With
request = objHTTP.ResponseText
End Function
А вот код запроса - тоже от производителя.
Код
Sub Info()
Cells(1, 1).Value = request("https://192.168.245.11:90/api/get/data?elm=STATE", " edXXXXXXXXXXb4f24309a625618c85650a55b934fd2b7b4da710351")
End Sub
В конце запроса - API-key
Запускаю макрос Info и получаю после долгого времени
Есть такой вопрос. Есть таблица, где собственно все поля защищены от изменений, только в колонке С пользователь может, что-то изменять. В зависимости от его выбора в средней части листа, в колонках от H до N формируется определенный список (зеленое поле). Но пользователь, заполняя последовательно меню, прокручивает лист все ниже и ниже и формируемый список довольно скоро исчезает, а чтобы его посмотреть - нужно обратно прокрутить лист к началу.
Вопрос - можно ли как-то средствами VBA сделать так, чтобы при прокрутке листа внизу, область H2:N21 как бы опускалась вниз и была всегда видна? Нужно только отображение и, возможность нажатия на кнопку для запуска макроса, которые находится в этой области. Возможность нажатия кнопки не критично нужна, а вот автоматическая отображение "зеленой" области - важно.
Подскажите пожалуйста, возможно ли это вообще в принципе? В зеленой области кое-где просто текст, кое-где динамические ссылки на другой лист, типа =ЕСЛИ(A22=1;list!B22;""), а также есть условное форматирование, которое окрашивает зеленую области по мере заполнения в серый цвет, а когда заполнение закончено (выбран последний пункт меню в колонке С) - в зеленый цвет.
Тема почти пятничная, фантастическая, только ради развлечения.
Итак, представьте себе, что вы умеете видить будущее. Ну, скажем так на одну неделю вперед. Ну, вроде бы жизнь удалась, смотрим, какие номера лотереи попадаються завтра, выигрываем 10 миллионов долларов и спокойно живем на своей вилле в Италии остаток жизни.
Но есть проблема. На Земле издавна сушествует тайная могущественная группа-секта, которая знает о появлении таких уникумов и обладает прибором, который с определенного расстояния может просканировать определенного человека и точно сказать, обладает ли он этим даром видеть будущее или нет. И хотя, вроде бы, видя будущее на неделю вперед, можно легко от этого спастись, но они тоже отработали технологии такой "охоты" и в конце концов все равно доберуться до вас. А сам факт, что нельзя сразу просканировать определенного подозреваемого и проверить его, уже показывает им, что вы именно тот, кто им нужен. И они, обладая огромными финансовыми средствами и армией агентов, заведомо сильнее вас в этом соревновании. А захватив вас, они садят вас под контроль, грубо говоря в камеру, и используют как узника до конца жизни.
И конечно же, они первым делом проверяют всех победителей лотерей, удачных игроков на бирже и т.п.
Вопрос, как использовать свое умение видеть будущее с выгодой и не попасть в зоркие глаза секты?
Подскажите пожалуйста, как можно справится с следующей проблемой. Есть таблица, в которой в одной строке, в определенной ячейке есть приложенный файл - добавлен через вставку объекта - из файла и отображается в виде ярлычка. Но после применения автофильтра, после которой данная строка и приложенным файлом исчезает - ярлык не пропадает, а просто сдвигается ниже и виден, а хотелось бы, чтобы он пропадал вместе со строкой и также появлялся. Можно ли это как-то сделать? Файл и иллюстрация в приложении.
У меня родители (возраст 80+) используют планшеты на Android, обычные китайские планшеты Huawei и Lenovo. Используют в основном для просмотра Youtube, но довольно часто нажимают ни то, возникают из-за этого проблемы, которые надо решать. Есть ли какое-то решение для планшетов, чтобы контролировать это, урезать права пользователя, чтобы не ставили случайно другие приложения, т.к. приехать лично не всегда получается, а TeamViewer не всегда помогает.
Не знаю, как правильно описать, то что хочу рассчитать.
Есть перечень цифр, два столбца
5
312,5
6
625
7
937,5
8
1250
9
1562
10
1875
11
2187,5
12
2500
13
2812,5
14
3125
15
3437,5
16
3750
17
4062,5
18
4375
19
4687,5
Если построить график по второму значению, получается прямая линия, но по какой формуле она рассчитывается, как ее найти? Я в математике как-то совсем не силен, даже не знаю, как это правильно называется, чтобы загуглить. Подскажите пожалуйста.
Совершенно случайно попал на bug, который возможно можно применять как фичу для защиты неких данных без пароля.
Итак, есть лист Excel, где есть некие данные. На ней стоит автофильтр и применен некий фильтр. Т.е. отображаються не все данные, а только по фильтру. Потом выделяем огромное количество строк вниз вместе с данные и применяем - "Скрыть". Потом тут же пробуем "Отобразить" и ... нифига не отображается. Что можно - только по одной строке как-то вытягивать и отображать. У меня было "всего" 200 строк, кое-как отобразил вручную. Интересно, есть ли возможность как-то отобразить все же? Или это баг у меня в Excel лично?
Файл для анализа во вложении - три листа в трех этапах, так сказать.
Добрый день, подскажите пожалуйста, можно ли сделать такую задачи и, по возможности предложите код.
Есть обычный файл Excel - например base.xlsx , в котором есть страница csvdate
Причем данные на этой странице есть только когда этот файл открыт и с ним работает работает пользователь
Хочется иметь второй файл Excel, с макросами, например csvmaker.xlsm, в котором будет одно поле на странице для ввода имени файл (до расширения CSV) и кнопка для создания файла CSV (пример во вложении)
Оба этих файла лежат в одной и той же папке. Первый файл должен быть обязательно без макросов, поэтому нужен второй, служебный файл, так сказать.
Порядок работы: 1. Открываем файл base.xlsx, работаем с ним и видим, что на странице (вкладке) csvdate есть данные. 2. Открываем файл csvmaker.xlsm, вводим имя файла для файла .CSV, например - "testfile" и нажимаем кнопку "make csv. file", после этого автоматически создается файл testfile.csv из страницы csvdate в файле base.xlsx в ту же папку.
Есть страница, на которой куча меню. Хочется сделать так, чтобы при выборе определенного пункта меню страница прокручивалась вниз до определенной ячейки. Можно ли это сделать без использования VBA? Пример приложил.
Добрый день, получил сегодня доступ к ChatGPT через поисковик Bing от Microsoft. Потестил немного сам, выложил уже пару кодов для всеобщего рассмотрения. Могу, если народ не возвражает, прямо в этой теме получать от людей запросы и постить ответы тупой железки для всенародного обсужения и, конечно же критики.
Т.е. вы пишите запрос, я пишу ответ и можно обсуждать и критиковать. Запросы лучше писать на английском, хотя и на русском отвечает в принципе, но имхо хуже.
Добрый день, есть большая Userform, в которой есть кучу ComboBox с выпадающими меню. Обычно новые combobox открываються после того, как было что-то выбрано в предыдушем combobox. Вот пример:
Код
If ComboBox6.ListIndex >= 0 Then
Label18.Visible = True
Label18.Caption = ShLabel.Cells(18, 1)
ComboBox7.Visible = True
If ComboBox6.ListIndex = 0 Then
With ComboBox7
ComboBox7.RowSource = Names("menu1").RefersTo
End With
ElseIf ComboBox6.ListIndex = 1 Then
With ComboBox7
ComboBox7.RowSource = Names("menu2").RefersTo
End With
End If
End If
А в самом конце кода userform было накопипащено куча обновлений на каждый Combobox
Код
Private Sub ComboBox2_Change()
UserForm_Initialize
End Sub
Private Sub ComboBox3_Change()
UserForm_Initialize
End Sub
Private Sub ComboBox4_Change()
UserForm_Initialize
End Sub
Все это работало без проблем, пока я не добавил вторую Multipage и уже на ней буквально на втором ComboBox стали появляться тормоза, а на третьем форма реально тормозит, а на четвертом - с вероятностью в 50% вешает Excel и сам выбор получается очень медленным. Я проверил все, что можно, но похоже причина в этом. Потом я взял и закоментировал все и поставил кнопку специально для обновления, которая делает тоже самое, что ComboBox2_Change
Код
Private Sub CommandButton5_Click()
UserForm_Initialize
End Sub
Т.е. выбрал пункт меню на второй вкладке (MultiPage1.Value = 1), нажал кнопку и все отлично работает, не тормозит. И не пойму абсолютно, в чем может быть причина такого разного поведения программы. Подскажите, пожалуйста, в каком направлении рыть? Сам файл, к сожалению, не могу приложить, там куча секретной информации.
Такой вопрос. Я запускаю одну Userform в Excel по F5 и пока она открыта, то не могу что-то делать ни в одном открытом файле Excel. Пытался открыть новое окно Excel, т.е. запустить второе приложение Excel и в нем открыть что-то, но и оно тоже недоступно становиться для изменений или просто в нем выбрать другой лист. Это нормально и не лечиться никак или есть какие-то способы это обойти?
Есть Excel'вский файл-конфигуратор, абсолютно ничего сложного и интересного. Обычная форма, где пользователь выбирает те или иные пункты, а ему выдается в конце список компонентов и их цена. Файл рос, рос, туда добавились VBA Userform и немного макросов. Вроде все проще паренной репы, но народ пищит от удовольствия, т.к. все изменения в цены и комплектацию я вношу за считанные минуты или максимум часы буквально по звонку или сообщению в Teams. А все попытки создать что-то подобное на серьезном уровне по другим направлениям сталкивались с тем, что программисты гнули пятизначные суммы за разработку + сумма за поддержку + любое изменение затягивалось на недели по самым пустяковым вопросам (да, и в Европе такое бывает).
Но начальство смотрело на все это дело и как любое нормальное начальство, хочет лучше и больше и ширше. Сейчас все работают с файлом через корпоративный файл-сервер, файл защищен максимально, насколько это возможно, но только не от людей, владеющих хорошо гуглом . Есть пожелание, чтобы была просто вебстраничка и там все заполнялось и там же выдавался результат, то бишь front-end, а back-end находился на сервере и никак не было доступен. Спрашивают меня - а можно ли такое сделать. Я вебсайтами когда-то на любительском уровне занимался, и HTML знаю и PHP немного, Joomla мог поставить. Но хочется что-то попроще - взять excel'вский файл и с минимальными усилиями его превратить в вебсайт. Вроде пока нагуглил слово ASP.NET и вроде там и много чего знакомого с VBA, но...
Вопрос - был ли у кого-то опыт перестройки - Excel c VBA --> вебсайт?
Ковыряюсь тут дальше с VBA, надеюсь еще не полностью надоел с вопросами. Честно пытался нагуглить решение, но безуспешно.
Есть файл, в нем userform с 40 combobox и 40 label к ним, родилась идея присвоить это не ручками, а через loop - for ...
Все надписи к label размещены на листе "label" с A1 по A40, а списки для combobox на листе menu, c A1 по A10 для первого combobox и так далее еще 39 раз.
Для Label получилось сделать без проблема, а вот для ComboBox не получается, ругается на Range, не может его использовать для RowSource
Код
Option Explicit
Private Sub UserForm_Initialize()
Dim i% 'Страницу Дмитрия изучил :)
For i = 1 To 40
UserForm1.Controls("Label" & CStr(i)).Caption = Worksheets("label").Cells(i, 1)
Next i
'это работает
'а это не работает, поэтому закомментировал пока
'For i = 1 To 40
'UserForm1.Controls("ComboBox" & CStr(i)).RowSource = Range(Worksheets("menu").Cells(i, 1), Worksheets("menu").Cells(i, 10))
'Next i
End Sub
Играюсь тут с userform, сделал форму с кучей меню ComboBox. А данные туда загружаю из созданных именованных диапазонов. Форму запускаю прямо из конструктора по F5 и все работает, но не сразу заметил такую особенность: Если у меня открыт лист с данными именованных диапазонов - форма правильно загружается и данные в ComboBox видны и выбираються. А если открыт любой другой лист - данных нет. Что для меня немного странно, ведь если вызывать просто по формуле в листе, то данные вставляються в любой лист без проблем.
Ссылку на диапазон прописываю в userform вот так:
Код
With ComboBox5
ComboBox5.RowSource = Range("notaus").Address
End With
Есть Userform, в которой есть меню с очень длинным текстом. Естественно, большая часть текста не видна. Можно ли как-то включить перенос текста в ComboBox, чтобы текст переносился на две или три сроки прямо в ComboBox?
Приложил пример, как это выглядит на листе и что хочется получить. Пример просто на листе, но хочется получить это именно на Userform, VBA.
Скоро мне исполниться 50 лет, круглая дата. Последние 20 лет функционировал в режиме с..ного веника. Лез в новые дали, учил новые разделы знаний, менял профессии, фирмы, менял страны, языки иностранные учил сам с нуля (знаю неплохо четыре языка). Семью построил, трое детей, все уже школьники. Вывез всех в Германию, пахал и пашу на двух работах. Постоянно ставил перед собой какие-то новые цели и старался их достичь. Почти все получалось, часто даже на удивление самому себе. И вот недавно совершенно неожиданно для себя достиг последних поставленных задач, которые казались когда-то почти недостижимыми. Сделал всем своим и себе немецкое гражданство. Попросил у работодателя повышения по зарплате, с большим запасом для торга, а он взял и все дал без торга. По второй работе тоже неожиданно увеличился финансовый поток. Машину недавно поменял, телефон новый купил, всякого барахла типа одежды модных марок накупил (раньше жаба давила, все экономил). Ну, хожу в бассейн три раза в неделю, в тренажерку раз в неделю, держу себя в тонусе. И блин, вдруг такая апатия началась, ужас. Ничего не хочется. Провел в воскресенье полдня на диване, смотря всякие глупые видео. Нифига не хочется. Искать новую работу, чтобы зарабатывать еще больше? А смысл? Любовницу заводить? Тоже не охота, семья, дети, вся фигня.
Я понимаю, что выглядит это все глупо наверное и как-то неестественно. Сиди на попе и наслаждайся жизню, но как-то не получается почему-то. А у вас такое было чувство? Как боролись с апатией? Посоветуйте чего-нибудь умного, может поможет.
Хотелось для демонстрации определенного функционала сделать userform на VBA, в которой будут выводится следующая информация
Вопрос 1 - <Выпадаюшее меню 1> Вопрос 2 - <Выпадаюшее меню 2> Вопрос 3 - <Выпадаюшее меню 3> и т.д.
Фишка в том, что в самом начале выводиться только первый вопрос и первое выпадающее меню, а далее следующий вопрос и следующее выпадаюшее меню показывалось только после того, как в предыдушем выпадающем меню выбирается некое значение.
Можно ли такой вывод меню сделать, как бы на лету. Пример файла я набросал, Там есть уровени меню, текст вопроса и название именованного диапазона для меню.
Если кто-то может предложить код для вывода и формирования такой userform - пожалуйста предложите.
Вставил ComboBox и в RawSource сделал ссылку на именованный диапазон. В режиме редактирования Userform я могу выбрать значения и сразу это значение попадает в Value (Т.е. можно посмотреть в свойствах ComboBox). Но когда запускаю Userform через F5, выбрать значение я тоже могу, но после выбора он не остается в ComboBox и тот остается пустым. Что я делаю не так? Подскажите пожалуйста.
Есть формула, которая проверяет значение в одной ячейке (к примеру - "1 яблоко", "2 яблока" и т.д.). Если первый символ - 1 (единица), ссылка на один диапазон, если больше единицы - ссылка на другой диапазон. Иначе, например в ячейке пусто - просто пустое значение.
Ввожу формулу, но выдает ошибку - "С этой формулой есть проблемы" (по немецки), просто не дает вставить формулу. Уже все скобки вроде пересчитал, вроде все правильно, а формула не проходит.
Вопрос не только к этой конкретной формуле, а вообще - как в таких случаях можно отследить ошибку? Когда формулу можно вставить и выдает ошибку - можно через проверку формулы посмотреть, как и что считается. А тут как это сделать?
Хотел попросить совет у тех, кто имел подобный опыт.
Итак, есть очень навороченный компьютер HP, куплен пару месяцев назад, с огромным жестким диском SSD, который стоит в комнате детей и используется всей семьей. Работает очень тихо, почти бесшумно.
Иногда есть желание поработать на компе по утрам. Но, естественно включая монитор и стуча по клавиатуре и кликая мышкой, детей могу разбудить. Могу работать на кухне, она закрывается и там можно стучать по клавишам сколько угодно. Это примерно в 10 метров от комнаты детей. Есть конечно старенький ноут, но он старый и тормозит, экран маленький, брать новый комп/ноут ради таких посиделок не хочется.
Есть идея. Купить второй монитор с подключением по Wifi + беспроводные клавиатуру и мышку и подключить это как-то к компу и работать с ним удаленно из кухни. Т.е. утром включаю комп в комнате детей и ухожу работать на кухню. Кто-то нечно подобное делал? Какие могут быть подводные камни ?
Подскажите пожалуйста, как можно получить массив, который генерируется по следующему условию: Текст в ячейке начинается с указанного символа или символов.
Вот пример. Есть большой список с двумя колонками - индификатор + текстовое поле. Хочу вставлять отдельно отфильтрованный массив по условию - индификатор начинается с указанной цифры. Т.е. если указана единица - "1", то создается массив из текстовых элементов, имеющих в начала цифру 1 - 11, 12, 13, но не все индификаторы с единицей вообще - т.е. НЕ 21, 31 и 41.
Желаемый результат указан в ячейкe F3 и ниже, но именно формулой массива, чтобы потом ее использовать через ФИЛЬТР в качестве списка меню через проверку данных.
Хочу вставлять выпадающее меню из массива, который фильтрую с помощью формулы FILTER, но получаю ошибку.
Если эту формулу просто вставить в ячейку, то все в порядке. Можно конечно вставить формулы на отдельный лист и ссылаться на первую ячейка каждого массива с решеткой - # на конце, но хочется отказаться от этого костыля.
Подскажите пожалуйста, если ли варианты как это сделать?
Получил я полгода назад задачу сделать конфигуратор для подбора необходимых компонентов при монтаже определенного оборудования. Т.к. я считаюсь крутым экспертом Excel (что не совсем правда, но на общем фоне - да, можно сказать лучший из худших), то сделал я это все в Excel, даже без макросов, просто с кучей выпадающих меню и подменю. Логику мой начальник написал сам на коленке, вернее на огромном плакате.
Смысл обычный - человек заполняет типа анкету и выбирает последовательно определенные пункты меню сверху вниз, а в зависимости от выбора формируется на отдельном листе список необходимых компонентов. После того, как человек заполнил анкету - у него есть готовый список, с перечнем позиций и их ценой. Такое теоретически должна создавать наша ERP, но там даже близко к этому не подступились и решили сделать в качестве теста вариант в Excel на довольно узкий сегмент оборудования и поручили мне. Ну, мне сказали, я сделал в конце концов.
Краткий пример я привожу в качестве подбора конфигурации авто. Т.е. вот также человек выбирает пункты меню и на выходе имеет определенную конфигурацию автомобиля с его ценой. Причем некоторые компоненты добавляются автоматически при выборе пункта меню, некоторые МОГУТ быть добавлены/или не добавлены как опцион и так далее. Уже в ходе разработки конфигуратора я сталкивался с тем, что в логике были ошибки, которые выяснялись уже в ходе проверки чернового варианта и приходилось переписывать конфигуратор довольно сильно. Но так как оборудование было не очень сложным, с горем пополам смог доделать конфигуратор и отдать его на тестирование. Откровенно говоря, я думал, что все это умрет тихо и мирно после этого - такие случаи были ранее. Но народ проверил, народу понравилось, т.к. очень облегчало работу. И меня недавно вызвал начальник - говорит, делай новый конфигуратор на намного более сложное оборудование.
Сразу встал вопрос именно с описанием всей логики конфигуратора. В чем ее писать и делать? Т.к. оборудование ОЧЕНЬ сложное, то вопрос именно с самого начала детально описать и проверить всю логику, а уже потом приступать к работе, иначе толку точно не будет. Но я не пойму даже, как ее описывать. Может быть есть какие-то стандартные программы для этого, чтобы разрабатывать логику таких конфигураторов? Писать снова что-то на коленке не хочется. Может у кого-то был подобный опыт и он может подсказать, в каком направлении копать?