Русаков Григорий | Директор | Аналитика. Проекты и решения

«Как создавать, продвигать приложение и конкурировать с фирмой 1С на протяжении 11 лет»

Рассказ о том, как с 2007 года мне (как директору и основному разработчику) удается продвигать на рынок отраслевое решение на базе «1С:Предприятие 8», как конкурировать с самой фирмой «1С», принимать не стандартные решения и продолжать продавать продукт. Речь пойдет о системе электронного документооборота СЭД «Корпоративный документооборот», имеющей тысячи пользователей. Основные тезисы выступления: 1. Риск выхода на пустой рынок в 2007 году – раз нет решений, то возможно они не востребованы рынком? Оказалось, что востребованы. Что приносит больше денег - слабое решение на пустом рынке или отличное решение, но на рынке с большой конкуренцией? 2. Как конкурировать с фирмой «1С» на её поле? Стараемся всегда идти на шаг впереди: переход на 8.2 раньше, переход на «Такси» раньше, графический редактор значительно раньше, push-уведомления для iOS раньше и т.д. Всё это были информационные поводы для новостей. Слабое место – отсутствие методических материалов и различных книг для клиентов, но у нас меньше объем кода (в отличие от типовых продуктов фирмы 1С), проще модифицировать под себя it-специалистам клиента; 3. Продажи падают – как удержать? Стоит ли переименовать продукт для отстройки от конкурента или оставить старое наименование? Добавить ли новые подсистемы – KPI и технической поддержки? Минимизация затрат на техническую поддержку клиентов с сохранением качества. Бесплатные пожизненные обновления. Апгрейды на другие продукты. Лучшие условия для партнеров; 4. Клиенты заявляют - «А мы хотим тут новую кнопку (иначе не купим)!» Как соблюсти баланс между усложнением решения и удовлетворением конкретного клиента? Плюсы развития продукта под реальные нужды предприятий, а не под гипотетические задачи; 5. Повышать или понижать цену? Что увеличит продажи продукта? 6. Куда развиваться после 11 лет? Создание на основе продукта отдельных подсистем для программ фирмы «1С». Сертификация встраиваемых модулей в программы «1С:УТ», «1С:УНФ», «1С:Документооборот» и другие; 7. А может сделать OpenSource? Плюсы и минусы продукта в OpenSource. Дополнительная информация: Сколько вышло больших обновлений (на 8.1 для 8.2 и 8.3 такси). Расскажем были ли возражения против платного перехода на новые редакции. Одно из интересных решений – графический редактор бизнес-процессов, позволяющий создавать произвольные процессы в пользовательском режиме (не в «Конфигураторе») создан в 2010 году, фирма «1С» создала аналогичный в 2017. Изначально продукт поставляется с полностью открытым кодом, без дополнительных ключей защиты. Есть ли плюсы в такой поставке или больше минусов – приходите и всё узнаете!

Автозаполнение шаблонов

1. user599343_niktesla367 14.12.16 15:32 Сейчас в теме
Всем добрый день!

Подскажите, пожалуйста, как заполнить в печатной форме поля чисел прописью прям в разделе Правила Автозаполнения шаблонов файлов?

То есть, есть у меня поле Цена - 380, 76. Нужно чтобы в печатной форме вывело это прописью.

Заранее всем спасибо!
Найденные решения
9. le0nid 15.12.16 11:50 Сейчас в теме
1. Через консоль запросов проверить запрос нужно.
2. Поставить точку останова и в режиме отладки посмотреть, как точно пишется путь к требуемым данным.

Попробуйте

Запрос = Новый Запрос; 
Запрос.Текст = 
"ВЫБРАТЬ 
| ВнутренниеДокументыДополнительныеРеквизиты.Значение 
|ИЗ 
| Справочник.ВнутренниеДокументы.ДополнительныеРеквизиты КАК ВнутренниеДокументыДополнительныеРеквизиты 
|ГДЕ 
| ВнутренниеДокументыДополнительныеРеквизиты.Ссылка = &ссылка 
| И ВнутренниеДокументыДополнительныеРеквизиты.Свойство = &Свойство"; 

Запрос.УстановитьПараметр("Свойство", ПланВидовХарактеристикСсылка.ДополнительныеРеквизитыИСведения.найтипонаименованию("Кількість тонн (АктБФ)") 
Запрос.УстановитьПараметр("ссылка", ФактическийВладелецФайла); 

РезультатЗапроса = Запрос.Выполнить(); 

ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать(); 

Если ВыборкаДетальныеЗаписи.Следующий() тогда 

РезультатОбработки = СтроковыеФункцииКлиентСервер.ЧислоЦифрамиПредметИсчисленияПрописью(ВыборкаДетальныеЗаписи.Значение,"тонна,тонны,тонн"); 

КонецЕсли;
Показать
user599343_niktesla367; +1 Ответить
Остальные ответы
Сортировка: Древо
2. le0nid 14.12.16 15:40 Сейчас в теме
В настройке замены, поставьте замену на результат выражение, и попробуйте использовать функцию из общего модуля СтроковыеФункцииКлиентСервер :
// Возвращает текстовое представление числа с единицей измерения в правильном склонении и числе.
//
// Параметры:
//  Число                       - Число  - любое целое число.
//	ПараметрыПредметаИсчисления - Строка - варианты написания единицы измерения в родительном падеже для одной,
//										   для двух и для пяти единиц, разделитель - запятая.
//
// Возвращаемое значение:
//  Строка - текстовое представление количества единиц, число записывается цифрами.
//
// Примеры:
//  ЧислоЦифрамиПредметИсчисленияПрописью(23,  "минуту,минуты,минут") = "23 минуты";
// 	ЧислоЦифрамиПредметИсчисленияПрописью(15,  "минуту,минуты,минут") = "15 минут".
Функция ЧислоЦифрамиПредметИсчисленияПрописью(Знач Число, Знач ПараметрыПредметаИсчисления) Экспорт
Показать


user599343_niktesla367; +1 Ответить
3. user599343_niktesla367 14.12.16 16:01 Сейчас в теме
(2)
В настройке замены, поставьте замену на результат выражение, и попробуйте использовать функцию из общего модуля СтроковыеФункцииКлиентСервер :


Спасибо больше за ответ!

Простите, а настройки замены - это где?:)
4. le0nid 14.12.16 16:49 Сейчас в теме
(3)

Примерный код такой:


РезультатОбработки = СтроковыеФункцииКлиентСервер.ЧислоЦифрамиПредметИсчисленияПрописью(ФактическийВладелецФайла.Цена,",,,");

user599343_niktesla367; +1 Ответить
5. user599343_niktesla367 15.12.16 10:29 Сейчас в теме
(4) Ещё раз простите за мою глупость, но у меня доп реквизит имеет вид
{ВладелецФайла|Ссылка|ДопРеквизиты|АктБФ|Кількість тонн (АктБФ)}

Как правильно записать в функции?
ВладелецФайла.Ссылка.ДопРеквизиты.АктБФ.КількістьТонн?
6. le0nid 15.12.16 10:49 Сейчас в теме
На вскидку как то так, но нужно проверять/отлаживать.

Запрос = Новый Запрос;
	Запрос.Текст = 
		"ВЫБРАТЬ
		|	ВнутренниеДокументыДополнительныеРеквизиты.Значение
		|ИЗ
		|	Справочник.ВнутренниеДокументы.ДополнительныеРеквизиты КАК ВнутренниеДокументыДополнительныеРеквизиты
		|ГДЕ
		|	ВнутренниеДокументыДополнительныеРеквизиты.Ссылка = &ссылка
		|	И ВнутренниеДокументыДополнительныеРеквизиты.Свойство = &Свойство";
	
	Запрос.УстановитьПараметр("Свойство", ПланВидовХарактеристикСсылка.ДополнительныеРеквизитыИСведения.найтипонаименованию("АктБФ");
	Запрос.УстановитьПараметр("ссылка", ФактическийВладелецФайла);
	
	РезультатЗапроса = Запрос.Выполнить();
	
	ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
	
	Если ВыборкаДетальныеЗаписи.Следующий() тогда
	
РезультатОбработки = СтроковыеФункцииКлиентСервер.ЧислоЦифрамиПредметИсчисленияПрописью(ВыборкаДетальныеЗаписи.Значение.КількістьТонн,"тонна,тонны,тонн");

КонецЕсли;	
Показать
user599343_niktesla367; +1 Ответить
7. user599343_niktesla367 15.12.16 11:32 Сейчас в теме
(6)
Запрос = Новый Запрос;
    Запрос.Текст = 
        "ВЫБРАТЬ
        |    ВнутренниеДокументыДополнительныеРеквизиты.Значение
        |ИЗ
        |    Справочник.ВнутренниеДокументы.ДополнительныеРеквизиты КАК ВнутренниеДокументыДополнительныеРеквизиты
        |ГДЕ
        |    ВнутренниеДокументыДополнительныеРеквизиты.Ссылка = &ссылка
        |    И ВнутренниеДокументыДополнительныеРеквизиты.Свойство = &Свойство";
    
    Запрос.УстановитьПараметр("Свойство", ПланВидовХарактеристикСсылка.ДополнительныеРеквизитыИСведения.найтипонаименованию("АктБФ");
    Запрос.УстановитьПараметр("ссылка", ФактическийВладелецФайла);
    
    РезультатЗапроса = Запрос.Выполнить();
    
    ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
    
    Если ВыборкаДетальныеЗаписи.Следующий() тогда
    
РезультатОбработки = СтроковыеФункцииКлиентСервер.ЧислоЦифрамиПредметИсчисленияПрописью(ВыборкаДетальныеЗаписи.Значение.КількістьТонн,"тонна,тонны,тонн");

КонецЕсли;
Показать

Попробовала - ругается. :( А как отлаживать в режиме 1С предприятия?
8. user599343_niktesla367 15.12.16 11:37 Сейчас в теме
ПланВидовХарактеристикСсылка.ДополнительныеРеквизитыИСведения.найтипонаименованию("АктБФ");

Вот тут точно так? Я зашла в ПланВидовХарактеристик и реквизиты все записываются в виде
Кількість тонн (АктБФ)
9. le0nid 15.12.16 11:50 Сейчас в теме
1. Через консоль запросов проверить запрос нужно.
2. Поставить точку останова и в режиме отладки посмотреть, как точно пишется путь к требуемым данным.

Попробуйте

Запрос = Новый Запрос; 
Запрос.Текст = 
"ВЫБРАТЬ 
| ВнутренниеДокументыДополнительныеРеквизиты.Значение 
|ИЗ 
| Справочник.ВнутренниеДокументы.ДополнительныеРеквизиты КАК ВнутренниеДокументыДополнительныеРеквизиты 
|ГДЕ 
| ВнутренниеДокументыДополнительныеРеквизиты.Ссылка = &ссылка 
| И ВнутренниеДокументыДополнительныеРеквизиты.Свойство = &Свойство"; 

Запрос.УстановитьПараметр("Свойство", ПланВидовХарактеристикСсылка.ДополнительныеРеквизитыИСведения.найтипонаименованию("Кількість тонн (АктБФ)") 
Запрос.УстановитьПараметр("ссылка", ФактическийВладелецФайла); 

РезультатЗапроса = Запрос.Выполнить(); 

ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать(); 

Если ВыборкаДетальныеЗаписи.Следующий() тогда 

РезультатОбработки = СтроковыеФункцииКлиентСервер.ЧислоЦифрамиПредметИсчисленияПрописью(ВыборкаДетальныеЗаписи.Значение,"тонна,тонны,тонн"); 

КонецЕсли;
Показать
user599343_niktesla367; +1 Ответить
10. user599343_niktesla367 15.12.16 12:18 Сейчас в теме
(9)
Поставить точку останова и в режиме отладки посмотреть, как точно пишется путь к требуемым данным.



Попробовала код - ошибку не выдает, но не выводит на форму ничего. :(
11. valkovsky 19.12.16 08:27 Сейчас в теме
(10), попробуйте примерно такую замену:
Запрос.УстановитьПараметр("ссылка", Файл.ВладелецФайла);
user599343_niktesla367; +1 Ответить
12. valkovsky 19.12.16 08:44 Сейчас в теме
(10) и ещё, тоже совсем по мелочи, просто другой вариант:
РЗ=Запрос.Выполнить().Выгрузить();
Для Каждого СтрокаРЗ Из РЗ Цикл
    РезультатОбработки = СтроковыеФункцииКлиентСервер.ЧислоЦифрамиПредметИсчисленияПрописью(СтрокаРЗ.Значение,"тонна,тонны,тонн");
КонецЦикла;


Хотя вряд ли это что-то изменит..
user599343_niktesla367; +1 Ответить
13. user599343_niktesla367 20.12.16 12:48 Сейчас в теме
Оказалось, что беда в функции
ЧислоЦифрамиПредметИсчисленияПрописью

Я её заменила на ЧислоПрописью - и всё заработало!:)

Всем огромное спасибо за помощь!
Оставьте свое сообщение
Все разделы

Вакансии

Преподаватель 1С
Санкт-Петербург
Полный день

Удаленный ИТ-журналист
Санкт-Петербург
По совместительству

Программист 1С
Санкт-Петербург
зарплата от 80 000 руб. до 150 000 руб.
Полный день

Консультант-аналитик 1С
Москва
зарплата до 160 000 руб.
Полный день

Удаленный бизнес-аналитик 1С
Санкт-Петербург
Временный (на проект)